为什么我在此文件夹上收到UnauthorizedAccessException?

时间:2017-10-12 14:32:12

标签: c# ntfs

根据MSDN,如果目录不可访问,Directory.Exists应返回false。我有一个Directory.Exists返回true的路径,但Directory.GetFiles抛出System.UnauthorizedAccessException。我也尝试过CanRead函数here,但这也为路径返回true。

路径为“C:\ Users \ {username} \ AppData \ Local \ Microsoft \ Windows \ INetCache \ Content.IE5”如果知道有帮助。

1 个答案:

答案 0 :(得分:3)

您无法访问此文件夹的内容,因为首先 - 它实际上不是文件夹,而是reparse point定位到另一个文件夹,第二个 - 它具有相当严格的访问权限

在您的特定情况下,此重新分析点的目标是" C:\ Users \ {username} \ AppData \ Local \ Microsoft \ Windows \ INetCache \ IE"文件夹,可以自由访问。

用户文件夹中存在多个此类快捷方式,以便与旧版软件兼容。虽然您无法列出这些重新分析点的内容,但您可以在知道名称时访问其中的文件和文件夹。

最后一点,您永远不需要在访问之前检查特定的文件夹权限,而应该抓住UnauthorizedAccessExpception并采取相应的行动。你甚至不需要在访问之前检查文件夹的存在,因为它可以在检查后删除(不是这个特定的文件夹,但一般而言),你只需要抓住DirectoryNotFoundException