我正在使用安装了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(. . .);
. . .
}
filePath
参数的值为:
"C:\\Users\\Jonathan.DeCarlo\\Source\\Repos\\PoliticalClassifier\\src\\PoliticalClassifier.DataSource.Tests\\TestFiles\\Social_Economic_DataMicro.xlsx"
这条路确实存在于我的机器上。此应用程序编译为"任何CPU。"我在安装了Windows 7 x64的计算机上运行它。如果我让应用程序作为x64进程运行,即使该文件存在,也会抛出FileNotFoundException
。如果我强制应用程序作为x86进程运行,则不会抛出异常(应该是这种情况)。
当应用程序作为x64进程而不是x86进程运行时,为什么System.IO.File.Exists(filePath)
会返回不同的结果?
答案 0 :(得分:4)
感谢您的所有评论。我尝试了其中一些,发现除了我用原始代码指向的文件之外,我无法重现任何文件的问题。在过去的几天里,我开始看到我的硬盘故障。获得一个新的硬盘驱动器,再次设置它,并运行上述程序后,我不再看到这个问题。我不能100%肯定这一点,但我会假设我试图打开的文件被一个失败的硬盘驱动器损坏了。我为野鹅追逐道歉。