无法找到特定文件

时间:2018-01-18 20:41:44

标签: c# windows console exe

当我在我的程序中尝试启动特定的exe文件“nvidia-smi.exe”(NVIDIA系统管理界面程序)时,收到错误“System.ComponentModel.Win32Exception。系统找不到指定的文件”< / p>

string directoryPath = "C:\\";
string fileName = "nvidia-smi.exe";
Console.WriteLine(System.IO.File.Exists(directoryPath + fileName)); //true
proc.StartInfo.WorkingDirectory = directoryPath;
proc.StartInfo.FileName = fileName;
proc.Start(); //Error. The system cannot find the file specified

但与此同时我可以:

1)从同一目录(exe,bat等)启动其他文件

2)成功执行我需要的文件“nvidia-smi.exe”如果将其重定位到我的项目目录并且不使用属性“proc.StartInfo.WorkingDirectory”。

-----------------答案是(感谢您的帮助!)------------------

你需要这个:

proc.StartInfo.UseShellExecute = true;
proc.StartInfo.WorkingDirectory = "C:\\";
proc.StartInfo.FileName = "nvidia-smi.exe";

或者这个:

proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "C:\\nvidia-smi.exe";

1 个答案:

答案 0 :(得分:2)

如果您将Sessions?$apply=filter(SomeColumn eq 1) /groupby((Application/Name), aggregate(TotalLaunchesCount with sum as Total)) &$orderby=Total &$top=5 设置为true,则proc.StartInfo.UseShellExecute的行为将与您预期的一样。否则,您必须指定WorkingDirectory的绝对路径,或确保您的可执行文件位于您的环境路径中。

相关文件:

UseShellExecute

WorkingDirectory