我试图编写一种方法来递归枚举所有目录,然后将其结果与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
下的一些其他目录
反之亦然,尽管GetDirectory返回了目录,但在资源管理器中看不到目录,也没有在目录输出中列出目录,在我的情况下是C:\ Windows \ System32 \ InstallShield及其子目录。
不是我想操纵这些目录,但令我感到好奇的是,关于C:\ Windows \ System32 \ InstallShield,C:\ Windows \ System32 \ spp子目录以及其他在一个目录中可见的子目录有何特别之处方式,而不是另一种方式。
我正在使用C#6.0和Windows 10版本1803
答案 0 :(得分:4)
可能是您的应用程序的构建版本设置为,而是进入了SYSWOW文件夹
您可以尝试在路径中将其替换为SYSnative-文件夹不存在,但似乎可以使用。
我在枚举注册表项时遇到了同样的问题