我正在创建一个程序,必须使用像C:\windows\System32\bcdedit.exe
这样的Windows系统程序。如果我尝试以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。
为什么?
答案 0 :(得分:0)
尝试以下操作,这应该返回true。
2n+2
以下是测试的示例:
IO.File.Exists(@"C:\windows\System32\bcdedit.exe");
参考:https://msdn.microsoft.com/en-us/library/system.io.file.exists(v=vs.110).aspx
如果这不起作用,那么问题很可能是string curFile = @"C:\windows\System32\bcdedit.exe";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
或x64
。因此,您应该将构建配置为x86
并再次测试。
可以找到更多信息here。