【问题标题】:SearchOption.AllDirectories and ignore access errors?SearchOption.AllDirectories 并忽略访问错误?
【发布时间】:2010-11-08 19:50:34
【问题描述】:
        string[] files = Directory.GetFiles(tb_dir.Text, tb_filter.Text, SearchOption.AllDirectories);

我正在尝试搜索目录和所有子目录以查找某些文件。我一直遇到当前代码的错误,即它看到无法进入的内容的第二秒就中断了

在这个无关紧要的应用程序中,我宁愿继续前进。有没有办法绕过这段代码每次都转出?

谢谢

崩溃893

【问题讨论】:

    标签: list search recursive-datastructures


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多