0

目前我正在使用以下代码搜索文件夹中的文件:

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”等扩展名的文件。

如果这是真的,我该如何克服这个问题?

谢谢你。

4

0 回答 0