C# 找不到特定的文件

C# 找不到特定的文件,c#,windows,console,exe,C#,Windows,Console,Exe,当我在程序中尝试启动特定的exe文件“nvidia smi.exe”(nvidia系统管理接口程序)时,我收到错误“System.ComponentModel.Win32Exception。系统找不到指定的文件” 但与此同时,我可以: 1) 从同一目录(exe、bat等)启动其他文件 2) 如果将文件重新定位到项目目录,并且不使用属性“proc.StartInfo.WorkingDirectory”,则成功执行所需的文件“nvidia smi.exe” -----------------答案是(

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

但与此同时,我可以:

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

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

-----------------答案是(谢谢你的帮助!)------------------

你需要这个:

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";

如果将
proc.StartInfo.UseShellExecute
设置为true,则
WorkingDirectory
的行为将与您预期的一样。否则,您必须指定
文件名的绝对路径,或者确保可执行文件位于环境路径中

相关文件:


如果将
proc.StartInfo.UseShellExecute
设置为true,则
WorkingDirectory
的行为将与您预期的一样。否则,您必须指定
文件名的绝对路径,或者确保可执行文件位于环境路径中

相关文件:


不确定,但可能exe需要在当前文件夹中写入某些内容,并且系统磁盘的根目录不受写入尝试的影响。不确定,但可能exe需要在当前文件夹中写入某些内容,并且系统磁盘的根目录不受写入尝试的影响。
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "C:\\nvidia-smi.exe";