2012-05-08 11 views
0

私はコードをディレクトリで検索してすべてのフォルダを選択しますが、データで開始するものだけを選択します。どうすればいい?以下は どのようにC#でフォルダの名前をフィルタリングするのですか?

は、それがディレクトリを通過し、私が持っているコードです:

string[] filePaths = Directory.GetDirectories(defaultPath).Where(Data => !Data.EndsWith(".")).ToArray(); 

答えて

10

LINQを使用する必要はありません。 GetDirectoriesは、検索パターンをサポートしており、フィルタリングがファイルシステムによって実行される可能性があるため、おそらくかなり速くなります。の結果を.NETで列挙します。

string[] filePaths = Directory.GetDirectories(defaultPath, "Data*"); 

*がゼロ以上の文字にマッチするワイルドカードであることに留意されたいです。

1

「データで始まる」場合は、あなただけのフォルダ名は「データ」で始まり、これは

string[] filePaths = Directory.GetDirectories(defaultPath) 
    .Where(s => s.StartsWith("Data") && !s.EndsWith(".")).ToArray(); 
を動くという意味
関連する問題