SearchOption.AllDirectories并忽略访问错误?

时间:2010-11-08 19:50:34

标签: list search recursive-datastructures

        string[] files = Directory.GetFiles(tb_dir.Text, tb_filter.Text, SearchOption.AllDirectories);

我正在尝试搜索目录和所有子目录以查找某个文件。我继续遇到当前代码的错误,第二次看到它无法进入它的东西

在这个无关紧要的应用程序中我宁愿继续前进。无论如何都要绕过每次转出的代码吗?

由于

Crash893

1 个答案:

答案 0 :(得分:1)

你可以这样做:

List<string> GetFiles(string topDirectory, string filter)
{
    List<string> list = new List<string>();
    list.AddRange(Directory.GetFiles(topDirectory, filter));
    foreach (string directory in Directory.GetDirectories(topDirectory))
    {
        list.AddRange(GetFiles(directory));
    }
    return list;
}

并将其命名为:

List<string> files = GetFiles(tb_dir.Text, tb_filter.Text);

当然,您可以将文件列表转换为数组。

您必须添加try catch块来处理UnauthorizedAccessException。