Я попытался написать метод для рекурсивного перечисления всех каталогов, а затем сравнил его результат с результатом команды 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