1

像这样使用 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,因此我认为硬链接不会混淆问题。我还检查了这两个目录都不是连接点。

有人可以解释这是为什么吗?

4

1 回答 1

0

WOW64意味着Windows-on-Windows 64-bit

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

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

您可以将您的程序编译到 x86 并重试。

于 2014-05-15T10:19:10.870 回答