C# System.IO.File.Exists()与x86和x64应用程序的答案不同

C# System.IO.File.Exists()与x86和x64应用程序的答案不同,c#,visual-studio-2012,64-bit,C#,Visual Studio 2012,64 Bit,我正在使用安装了更新3的Visual Studio 2012。我正在使用C#targeting.NETFramework4.5 我有一个这样开始的方法: public void Open(System.String filePath) { if (!System.IO.File.Exists(filePath)) throw new FileNotFoundException(. . .); . . . } filePath参数的值如下: “C:\\Users

我正在使用安装了更新3的Visual Studio 2012。我正在使用C#targeting.NETFramework4.5

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

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

    . . .
}
filePath
参数的值如下:

“C:\\Users\\Jonathan.DeCarlo\\Source\\Repos\\PoliticalClassifier\\src\\PoliticalClassifier.DataSource.Tests\\TestFiles\\Social\u Economic\u DataMicro.xlsx”

这条路径确实存在于我的机器上。此应用程序被编译为“任意CPU”。我正在安装Windows 7 x64的计算机上运行它。如果我让应用程序作为x64进程运行,即使文件确实存在,也会抛出
FileNotFoundException
。如果我强制应用程序作为x86进程运行,则不会引发异常(应该是这样)


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

感谢您的所有评论。我尝试了许多方法,发现除了我用原始代码指向的文件外,我无法重现任何文件的问题。在过去的几天里,我开始看到我的硬盘出现故障。在得到一个新硬盘,重新设置,并运行上述程序后,我不再看到这个问题。我不能百分之百肯定这一点,但我会假设我试图打开的文件被一个出现故障的硬盘损坏了。很抱歉,这是白费力气。

您能确认x86和x64的文件路径字符串是相同的吗?文件路径是否由任何类型的环境变量设置?您能否在一个新的控制台应用程序中重现该问题,该应用程序仅调用
File.Exists
,并使用相同的
文件路径
?@CloseDeyesseing-我已确认这两个应用程序中的文件路径相同。此外,没有使用环境变量来确定路径。出于测试目的,我将其更改为硬编码路径。出于好奇,它是否看到用户配置文件之外的文件?比如C:\Test.txt?我无法在Win7 x64上复制它。