我如何在c#中获得所有文件扩展名

本文关键字:文件 扩展名 | 更新日期: 2023-09-27 18:14:22

string path = "C:''BSD";
string extension = Console.ReadLine();
List<string> allExstensions = getAllExtention(); // Is there a method where I get all File Extensions : *.png, *.txt,.......
if (!allExstensions.Contains(extension))
    throw new Exception("The Extension you wrote does not exist!!");
foreach (string directory in Directory.GetDirectories(path))
{
    foreach (string file in Directory.GetFiles(directory,extension))
    {
        Console.WriteLine(file);
    }
}

是否有方法检查是否存在扩展?

我如何在c#中获得所有文件扩展名

文件可以有任何它想要的扩展名。它可以是任意长度的任何字符序列。因为这个序列是无限的,所以没有办法把它们都放在一个列表中。

如果您想知道您感兴趣的目录是否有任何具有给定扩展名的文件,您可以枚举目录中的所有文件并将它们的所有扩展名放入一个集合中。

您可以使用Linq:

来尝试。
    string path = "C:''BSD";
    string extension = Console.ReadLine();
    int count = 0;
    foreach (string file in Directory.GetFiles(path, "*.*",SearchOption.AllDirectories).Where(x => x.EndsWith(extension)))
    {
       Console.WriteLine(file);
       count++;
    }
    if (count == 0)
      throw new Exception("The Extension you wrote does not exist!!");