6

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 プロセスとして実行すると、例外はスローされません (これは実際に発生するはずです)。

System.IO.File.Exists(filePath)アプリケーションが x86 プロセスではなく x64 プロセスとして実行されている場合、 が異なる結果を返すのはなぜですか?

4

1 に答える 1

4

コメントありがとうございます。いくつか試してみたところ、元のコードで指定したファイル以外のファイルでは問題を再現できないことがわかりました。ここ数日で、ハードドライブが故障するのを見始めました。新しいハード ドライブを入手し、すべてを再設定して、前述のプログラムを実行すると、この問題は発生しなくなりました。これについて 100% 確実なことは言えませんが、開こうとしていたファイルがハード ドライブの故障によって破損したと仮定します。野生のガチョウの追跡についてお詫び申し上げます。

于 2013-07-11T20:00:19.210 に答える