System.IO.File.Exists()来自x86和x64应用程序的不同答案

Jon*_*rlo 6 c# 64-bit visual-studio-2012

我正在使用安装了Update 3的Visual Studio 2012.我正在使用C#定位.NET framework 4.5.

我有一个像这样开始的方法:

public void Open(System.String filePath)
{
    if (!System.IO.File.Exists(filePath))
        throw new FileNotFoundException(. . .);

    . . .
}
Run Code Online (Sandbox Code Playgroud)

filePath参数的值是这样的:

"C:\\Users\\Jonathan.DeCarlo\\Source\\Repos\\PoliticalClassifier\\src\\PoliticalClassifier.DataSource.Tests\\TestFiles\\Social_Economic_DataMicro.xlsx"

那条路确实存在于我的机器上.此应用程序编译为"任何CPU".我在安装了Windows 7 x64的计算机上运行它.如果我让应用程序作为x64进程运行,FileNotFoundException即使文件存在,也会抛出.如果我强制应用程序作为x86进程运行,则不抛出异常(应该是这种情况).

System.IO.File.Exists(filePath)当应用程序作为x64进程而不是x86进程运行时,为什么返回不同的结果?

Jon*_*rlo 4

感谢您的所有评论。我尝试了其中的一些,发现除了我用原始代码指向的文件之外,我无法重现任何文件的问题。在过去的几天里,我开始发现我的硬盘出现故障。在获得新的硬盘驱动器、重新设置并运行上述程序后,我不再看到这个问题。我不能 100% 确定这一点,但我会假设我尝试打开的文件已被故障硬盘损坏。我为徒劳的追逐道歉。