check if file exist on 64 bits system using File.Exists

后端 未结 2 898
慢半拍i
慢半拍i 2020-12-17 16:56

My OS is 64 bits and in the foler C:\\Windows\\SysWOW64 there is a file 111.txt, but there is not the file in c:\\windows\\system32

but the follwoing code return tru

2条回答
  •  一生所求
    2020-12-17 16:59

    Because so many applications have hard-coded the System32 directory name into paths, MS put the 64-bit systems files there instead of in a 'System64' directory. The 32-bit versions now go into a 'SysWOW64' directory (it's quite confusing). but in order to prevent breaking 32-bit programs, the system performs a redirection by default for 32-bit processes trying to access the 'System32' directory. In most cases, whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to %windir%\SysWOW64.

    A simple way to get around this redirection is to use %windir%\Sysnative instead of %windir%\System32. Win64 will 'redirect' that directory to the actual System32 directory.

    You can use the Wow64DisableWow64FsRedirection() API to completely disable this redirection . See http://msdn.microsoft.com/en-us/library/aa384187.aspx for details.

提交回复
热议问题