【问题标题】:How to search all directory's except for one C#如何搜索除一个 C# 之外的所有目录
【发布时间】:2020-04-11 18:38:15
【问题描述】:

我目前正在开发 C# 中的防病毒软件。 不过我有一个小问题。 当它扫描计算机的文件时,它无法访问 AppData 中的文件。 我怎样才能搜索除一个以外的所有目录?

这是我到目前为止得到的(不起作用):

Directory.GetFiles(path , "*.*", SearchOption.AllDirectories).Where(d => !d.StartsWith("<EXCLUDE_DIR_PATH>")).ToArray();

我不断收到错误

对路径“c:\Users\admin\AppData\Local\Application Data”的访问被拒绝。

【问题讨论】:

标签: c#


【解决方案1】:

拒绝访问异常仅表示您无权访问该目录。 Windows 有其中的几个,AppData 就是其中之一。尝试以管理员身份运行程序。请注意,您需要

  1. 是管理员组的 Windows 用户,并且
  2. 您的应用需要在升级后运行。

您可以通过右键单击并选择“以管理员身份运行”来运行程序的可执行文件来实现 1 和 2(即使您以管理员身份登录!)

【讨论】:

    【解决方案2】:

    我已经测试了您的代码,它运行良好。这似乎是一个权限问题。尝试使用管理员权限运行您的应用程序。 Here is a good SO answer for that

    但是,您会遇到另一个问题 - Directory.GetFiles 会找到不存在的文件。 Another SO answer to look at for this

    在我的测试中,我遇到了 AppData 目录中不存在的文件夹。您需要告诉程序忽略这些目录。 Here is another answer to get you started

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多