因此,我正在编写一个遍历指定目录树的应用程序,我正在尝试处理文件夹访问权限的异常,我遇到了一个编译器返回的文件夹,该文件夹的目录为C:\ ProgramData\Application Data
有人知道这个文件夹是什么吗?它似乎不存在于windows资源管理器中。好像,文件夹不在那里。它不是隐藏的。只是不在那里。我可以使用提升的命令提示符进入文件夹,但是当我使用“dir”命令查看文件夹中包含的内容时,cmd返回:
“C:\程序数据\应用程序数据目录
找不到文件“
我很想知道这个文件夹是什么…

最佳答案

dir /a命令是您的朋友:

C:\ProgramData>dir /a
 Volume in drive C has no label.
 Volume Serial Number is 848A-BBB7

 Directory of C:\ProgramData

23/05/2015  03:38 pm    <DIR>          .
23/05/2015  03:38 pm    <DIR>          ..
14/05/2015  10:28 pm    <JUNCTION>     Application Data [C:\ProgramData]

如您所见,应用程序数据是指向ProgramData的连接点。windows包含许多类似的连接点,以便向后兼容较旧的应用程序。
连接点上的安全权限明确禁止列出文件,这就是无法获取其内容列表的原因:
C:\ProgramData>icacls "Application Data" /L
Application Data Everyone:(DENY)(S,RD)
                 Everyone:(RX)
                 NT AUTHORITY\SYSTEM:(F)
                 BUILTIN\Administrators:(F)

此外,连接点被标记为系统并隐藏:
C:\ProgramData>attrib /L "Application Data"
   SH   I    C:\ProgramData\Application Data

这就是为什么探险家不显示它。(即使配置为显示隐藏项,资源管理器也不会显示标记为隐藏和系统的连接点。)

09-10 11:32
查看更多