目前我正在使用以下代码搜索文件夹中的文件:
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”等扩展名的文件。
如果这是真的,我该如何克服这个问题?
谢谢你。