6

我正在使用安装了 Update 3 的 Visual Studio 2012。我正在使用针对 .NET 框架 4.5 的 C#。

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

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_Economic_DataMicro.xlsx"

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

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

4

1 回答 1

4

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

于 2013-07-11T20:00:19.210 回答