据 MSDN 报道,目录.存在 https://msdn.microsoft.com/en-us/library/system.io.directory.exists(v=vs.110).aspx如果目录不可访问,则应返回 false。我有一条路径,Directory.Exists 返回 true,但 Directory.GetFiles 抛出 System.UnauthorizedAccessException。我也尝试过 CanRead 功能here https://stackoverflow.com/a/11710169/2953666,但这对于路径也返回 true。
如果知道有帮助的话,路径是“C:\Users\{用户名}\AppData\Local\Microsoft\Windows\INetCache\Content.IE5”。
您无权访问此文件夹的内容,因为首先 - 它实际上不是一个文件夹,而是一个重解析点 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365503(v=vs.85).aspx它的目标是另一个文件夹,第二个 - 它具有相当严格的访问权限。
在您的特定情况下,此重新分析点的目标是“C:\Users\{username}\AppData\Local\Microsoft\Windows\INetCache\IE”文件夹,该文件夹可自由访问。
用户文件夹内存在多个此类快捷方式,以便与旧版软件兼容。虽然您无法列出这些重分析点的内容,但当您知道名称时,您可以访问其中的文件和文件夹。
最后一点,您永远不需要在访问之前检查特定的文件夹权限,而是应该捕获UnauthorizedAccessExpception
并采取相应行动。您甚至不需要在访问之前检查文件夹是否存在,因为它可以在检查后删除(不是这个特定的文件夹,而是一般情况),您只需捕获DirectoryNotFoundException
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)