目前我使用以下代码搜索文件夹中的文件:
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()
中获得异常,或者找不到任何内容!
当我尝试访问某些隐藏或系统安全文件夹时,我也会遇到异常。
如何以递归方式正确搜索驱动器或文件夹中的文件?
还有一件事,我知道像“abc”这样的扩展可能会返回带有“abcd”或“abcde”等扩展名的文件。
如果这是真的,我该如何克服这个问题?
谢谢。