2016-10-21 5 views
-5
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); 
    } 
} 

enterf exstentionが出ていないかどうかを確認する方法はありますか?どのようにC#ですべてのファイル拡張子を取得できますか?

+2

いいえ、ファイルがまったく任意の拡張子またはnoneを持つことができます。 「登録された」拡張機能の概念はありますが、それを使用するためにファイル拡張子を登録する必要はありません。 – SledgeHammer

+0

あなたは何をしたいですか?有効な拡張機能は何ですか?あなたの質問はかなり不明です。 – HimBromBeere

答えて

3

ファイルに任意の拡張子を付けることができます。任意の長さの任意の文字シーケンスであることができます。そのシーケンスは無限であるため、それらをすべてリストに入れる方法はありません。

興味のあるディレクトリに特定の拡張子を持つファイルがあるかどうかを知りたい場合は、ディレクトリ内のすべてのファイルを列挙し、すべての拡張子を1組にすることができます。

0

あなたは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!!"); 
関連する問題