【问题标题】:Searching for files in all folders throws UnauthorizedAccessException在所有文件夹中搜索文件会引发 UnauthorizedAccessException
【发布时间】:2021-10-12 23:57:37
【问题描述】:

我需要关于鳕鱼的帮助。 我想在我的电脑中搜索文件并在listView 中查看。
仍然显示错误:

System.UnauthorizedAccessException: 对道路 d:$RECYCLE.BIN\S-1-5-18 的访问被拒绝。

如何搜索除隐藏文件夹和系统文件夹之外的所有文件夹和子文件夹。 这是我的代码。

private void button1_Click(object sender, EventArgs e)
    {
        var files = Directory.EnumerateFiles(@"d:\", "*" + textBox1.Text + "*", SearchOption.AllDirectories)
        .Where(f => (new FileInfo(f).Attributes & (FileAttributes.Hidden | FileAttributes.System)) == 0)
        .GroupBy(Path.GetDirectoryName);

        foreach (var folder in files)
        {
            foreach (var file in folder)
            {
                listView1.Items.Add(file);
            }
        }
        
        backgroundWorker1.RunWorkerAsync(); }

感谢您的帮助。

【问题讨论】:

标签: c# directory path filesystems file-permissions


【解决方案1】:

使用 .NET Core 2.1 中引入的 EnumerationOptions 类,如下所示:

var options = new EnumerationOptions { RecurseSubdirectories = true };
var files = Directory.EnumerateFiles(@"d:\", "*filename*", options);

默认EnumerationOptions.IgnoreInaccessibletrue

【讨论】:

  • 报告错误 EnumerationOptions does not contain a definition for RecurseSubdirectories
猜你喜欢
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 2020-06-15
  • 2013-02-09
  • 2011-12-07
相关资源
最近更新 更多