gpt4 book ai didi

c# - 绕过 Windows 兼容性链接目录

转载 作者:可可西里 更新时间:2023-11-01 11:28:10 26 4
gpt4 key购买 nike

Windows 7 中有许多目录具有古代名称且无法访问。我指的是像“C:\Documents and Settings”和“C:\Dokumente und Einstellungen”这样的目录,其中真正的文件夹是“C:\Users”。另一个是本地化系统上的“C:\Programme”。当使用 Directory.GetDirectories 迭代所有目录但无法访问时,这些目录会出现。尝试访问它们时,将抛出 UnauthorizedAccessException。我可以捕捉到它,但它会导致额外的时间,从而减慢我的扫描速度。我宁愿避免首先查看那些假目录。 (我想知道为什么它们在那里,我是否可以删除它们,但这是另一个问题。)

那么在实际落入此类陷阱之前,有什么好方法可以检测出来呢?我想这是某种链接,但有不同种类的链接(以及来自 NTFS 内部的东西,任何普通用户都无法自己创建),但我仍然不知道如何从代码中检测到它。

我知道我仍然需要处理该异常,但如果我事先知道某个操作将无法运行,我不想这样做以加快速度。磁盘扫描已经够慢了。

我的代码不应该以管理权限运行,也不期望在这些链接目录中找到任何有用的东西。

最佳答案

DirectoryInfo.FileAttributes在符号链接(symbolic link)文件夹的情况下包含ReparsePoint属性:

// Code from LinqPad, not sure it compiles in IDE:
DirectoryInfo di = new DirectoryInfo(@"c:\documents and settings");
Console.WriteLine("{0}", di.Attributes); // Hidden, System, Directory, ReparsePoint, NotContentIndexed

关于c# - 绕过 Windows 兼容性链接目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com