-1

のような Windows システム プログラムで動作する必要があるプログラムを作成していますC:\windows\System32\bcdedit.exe。たとえば、到達しようとするとmspaintうまくいきます。

IO.File.Exists(@"C:\windows\System32\mspaint.exe") // return true

しかし

IO.File.Exists(@"C:\windows\System32\bcdedit.exe") // return false

これは false を返しますが、ファイルは実際に存在します。Windowsエクスプローラーで見ることができ、コマンドラインから起動できます。このファイルにアクセスできないのは、私の C# アプリケーションのみです。起動しようとすると、エラー Win32Exception と次のメッセージが表示されます。

システムは、指定されたファイルを見つけることができません

そして、(上記のコードで) ファイルが存在するかどうかを「尋ねる」と、false が返されます。

なんで?

4

1 に答える 1

0

以下を試してみてください。これは true を返すはずです。

IO.File.Exists(@"C:\windows\System32\bcdedit.exe");

テストする例を次に示します。

string curFile = @"C:\windows\System32\bcdedit.exe";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");

参照: https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx

それでもうまくいかない場合、最も可能性の高い問題はx64またはx86です。したがって、ビルドを構成しAnyCPUて再度テストする必要があります。

ここに画像の説明を入力

詳細については、こちらを参照してください。

于 2015-12-23T19:55:31.580 に答える