gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:45:10 24 4
gpt4 key购买 nike

我正在使用安装了 Update 3 的 Visual Studio 2012。我正在使用面向 .NET Framework 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 进程运行,则不会抛出异常(应该是这样)。

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

最佳答案

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

关于c# - System.IO.File.Exists() 来自 x86 和 x64 应用程序的不同答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com