現在、次のコードを使用してフォルダー内のファイルを検索しています。
public string[] getFiles(string SourceFolder, string Filter,System.IO.SearchOption searchOption)
{
// ArrayList will hold all file names
ArrayList alFiles = new ArrayList();
// Create an array of filter string
string[] MultipleFilters = Filter.Split('|');
// for each filter find mathing file names
foreach (string FileFilter in MultipleFilters)
{
// add found file names to array list
alFiles.AddRange(Directory.GetFiles(SourceFolder, FileFilter, searchOption));
}
// returns string array of relevant file names
return (string[])alFiles.ToArray(typeof(string));
}
問題は、検索するパスとしてドライブを渡すとD:\\
、例外が発生するGetFiles()
か、何も見つからないことです!
非表示またはシステムで保護されたフォルダーにアクセスしようとすると、例外が発生します。
ドライブまたはフォルダ内のファイルを再帰的に適切に検索するにはどうすればよいですか?
もう1つ、「abc」のような拡張子は、「abcd」や「abcde」などの拡張子を持つファイルを返す可能性があることを知りました。
これが本当なら、どうすればこの問題を克服できますか?
ありがとうございました。