这是因为 Windows Vista 中的文件夹重定向。如果您通常无权将某些内容写入 C:\Program Files 文件夹,Vista 将默默地将这些写入重定向到您用户目录中的“秘密”文件夹中。该文件对于创建该文件的用户(以及以该用户身份运行的任何程序)仍然可见,但对其他人不可见。因此,您的程序可能以与 Explorer 不同的用户身份运行,因此 Explorer 看不到它。
在我的 Vista 64 位机器上查看 dir /aL 的以下输出:
C:\ProgramData>dir /aL
Volume in drive C has no label.
Volume Serial Number is 74DB-58F8
Directory of C:\ProgramData
02.11.2006 16:41 <JUNCTION> Application Data [C:\ProgramData]
02.11.2006 16:41 <JUNCTION> Desktop [C:\Users\Public\Desktop]
02.11.2006 16:41 <JUNCTION> Documents [C:\Users\Public\Documents]
02.11.2006 16:41 <JUNCTION> Favorites [C:\Users\Public\Favorites]
02.11.2006 16:41 <JUNCTION> Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
02.11.2006 16:41 <JUNCTION> Templates [C:\ProgramData\Microsoft\Windows\Templates]
0 File(s) 0 bytes
6 Dir(s) 62 040 051 712 bytes free
该功能称为重解析点或交汇点,具体取决于您在何处阅读它们。它们与 Unix 中的符号链接非常相似。