c#Directory.GetFiles()-NTFS上的多个文件

c#Directory.GetFiles()-NTFS上的多个文件,c#,ntfs,getfiles,ntfs-mft,C#,Ntfs,Getfiles,Ntfs Mft,像这样使用System.IO.Directory.GetFiles() string[] fileFullPaths1 = Directory.GetFiles(@"C:\Windows\System32", "mycompanyname.scr"); string[] fileFullPaths2 = Directory.GetFiles(@"C:\Windows\SysWOW64", "mycompanyname.scr"); 我发现以下两个文件: C:\Windows\System32

像这样使用System.IO.Directory.GetFiles()

string[] fileFullPaths1 = Directory.GetFiles(@"C:\Windows\System32", "mycompanyname.scr");
string[] fileFullPaths2 = Directory.GetFiles(@"C:\Windows\SysWOW64", "mycompanyname.scr");
我发现以下两个文件:

  • C:\Windows\System32\mycompanyname.scr
  • C:\Windows\SysWOW64\mycompanyname.scr
Windows资源管理器在C:\Windows\System32中看不到,命令行目录也看不到。此外,我自己搜索MFT的代码显示MFT中只有一个mycompanyname.scr实例,其父目录记录编号指向C:\Windows\SysWOW64,因此我不认为硬链接会混淆问题。我还检查了两个目录是否都不是连接点


有人能解释一下原因吗?

WOW64
是指Windows 64位上的
窗口

SysWOW64
用于放置32位程序。
System32
用于放置64位程序

对于32位程序,
C:\Windows\System32
将始终重定向到
C:\Windows\SysWOW64

对于64位程序,如果文件不存在,
C:\Windows\System32
将重定向到
C:\Windows\SysWOW64


您可以将程序编译到x86,然后重试。

您的应用程序可能是32位的,因此其System32目录被重定向到SysWOW64。阅读。这几乎肯定与-@ta.speot.is有关,但我不会将它们直接链接到关于禁用它的文档,因为这通常是错误的。公平地说,我没有说太多。但目的是让OP阅读文档。你们都帮了大忙,而且速度确实很快!谢谢我对WoW64了解不多,所以是时候读点书了:)