Это из-за перенаправления папок в Windows Vista. Если у вас обычно нет прав на запись чего-либо в папку C: \ Program Files, Vista автоматически перенаправит эти записи в «секретную» папку внутри вашего пользовательского каталога. Файл по-прежнему будет виден для пользователя, который его создал (и для любых программ, работающих от имени этого пользователя), но он не будет виден ни для кого другого. Таким образом, ваша программа, вероятно, работает от имени другого пользователя, нежели Explorer, и, следовательно, Explorer не может ее увидеть.
Смотрите следующий вывод dir / aL на моей 64-битной машине Vista:
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.