Почему вывод Directory.GetDirectories отличается от dir с / a: d? - PullRequest
0 голосов
/ 12 ноября 2018

Я попытался написать метод для рекурсивного перечисления всех каталогов, а затем сравнил его результат с результатом команды dir.Похоже, что некоторые каталоги возвращаются dir и игнорируются GetDirectories, например:

Directory.GetDirectories(@"C:\Windows\System32\spp")

возвращает массив с одним элементом - "C:\\Windows\\System32\\spp\\tokens", а

dir "C:\Windows\System32\spp" /b /a:d

возвращает три каталога:

plugin-manifests-signed
store
tokens

Другим примером является каталог C: \ Windows \ System32 \ spool, он не указан в Directory.GetDirectories(@"C:\Windows\System32"), но присутствует в dir "C:\Windows\System32" /b /a:d, а также в некоторых других каталогах в C:\Windows\System32И наоборот, есть каталоги, не видимые в проводнике и не перечисленные в выводе dir, хотя и возвращаемые GetDirectories, в моем случае это был C: \ Windows \ System32 \ InstallShield и его подкаталоги.Не то, чтобы я хотел манипулировать этими каталогами, но мне стало любопытно, что такого особенного в подкаталогах C: \ Windows \ System32 \ InstallShield, C: \ Windows \ System32 \ spp и других, что они видны одним способом, а не вдругой.Я использую C # 6.0 и Windows 10 версии 1803

1 Ответ

0 голосов
/ 12 ноября 2018

Возможно, сборка вашего приложения настроена и вместо этого она отправляется в папку SYSWOW

Вы можете попробовать заменить его на SYSnative в вашем пути - папка не существует, но, похоже, работает.

Я столкнулся с той же проблемой, пытаясь перечислить ключи реестра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...