为什么Directory.GetDirectories输出与/ a:d的dir不同?

时间:2018-11-12 13:42:33

标签: c# windows-10

我试图编写一种方法来递归枚举所有目录,然后将其结果与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

1 个答案:

答案 0 :(得分:4)

可能是您的应用程序的构建版本设置为,而是进入了SYSWOW文件夹

您可以尝试在路径中将其替换为SYSnative-文件夹不存在,但似乎可以使用。

我在枚举注册表项时遇到了同样的问题