C# 系统在进程启动中找不到指定的文件异常
我在从C开始一个进程时遇到了一些异常 下面是代码C# 系统在进程启动中找不到指定的文件异常,c#,.net,exception,process,C#,.net,Exception,Process,我在从C开始一个进程时遇到了一些异常 下面是代码 Process myProcess = new Process(); try { myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = "c:\\windows\\system32\\notepad.exe C:\\Users\\Karthick\\AppData\\Local\\Temp\\5aau1orm.txt";
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "c:\\windows\\system32\\notepad.exe C:\\Users\\Karthick\\AppData\\Local\\Temp\\5aau1orm.txt";
myProcess.StartInfo.CreateNoWindow = false;
myProcess.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
有时,如果useShellExecute设置为false,则会出现文件名、目录名或卷标语法不正确的异常
任何关于为什么不能正确显示的想法您不能将整个命令行放在FileName属性中 相反,您应该只启动txt文件,该文件将在用户的默认编辑器中打开:
Process.Start(@"C:\Users\Karthick\AppData\Local\Temp\5aau1orm.txt");
不能在FileName属性中放置整个命令行 相反,您应该只启动txt文件,该文件将在用户的默认编辑器中打开:
Process.Start(@"C:\Users\Karthick\AppData\Local\Temp\5aau1orm.txt");
您正在尝试执行c:\\windows\\system32\\notepad.exe c:\\Users\\karchigh\\AppData\\Local\\Temp\\5aau1orm.txt。如果您不使用shell,它将被逐字解释。如果使用shell,shell将负责参数解析
改用ProcessStartInfo.Arguements属性提供参数。您正在尝试执行c:\\windows\\system32\\notepad.exe c:\\Users\\karthigh\\AppData\\Local\\Temp\\5aau1orm.txt。如果您不使用shell,它将被逐字解释。如果使用shell,shell将负责参数解析
改用ProcessStartInfo.Arguements属性提供参数。FileName属性不采用命令行类型语法。您指定的是命令行
由于它只有一个.txt文件,所以您可以使用具有完整文件路径的方法。它将自动搜索相应的默认程序以打开文件。文件名属性不采用命令行类型语法。您指定的是命令行
由于它只有一个.txt文件,所以您可以使用具有完整文件路径的方法。它将自动搜索相应的默认程序以打开文件。正如@SLaks所述,这是适当的方式 让您案例中映射到.txt扩展名的默认应用程序打开该文件
Process.Start("test.txt");
但如果您希望只在记事本中打开文本文件,而不在其他默认文本编辑器中打开文本文件
ProcessStartInfo processStartInfo = new ProcessStartInfo(@"c:\Windows\System32\notepad.exe", "text.txt");
Process.Start(processStartInfo);
正如@SLaks所提到的,这是合适的方式 让您案例中映射到.txt扩展名的默认应用程序打开该文件
Process.Start("test.txt");
但如果您希望只在记事本中打开文本文件,而不在其他默认文本编辑器中打开文本文件
ProcessStartInfo processStartInfo = new ProcessStartInfo(@"c:\Windows\System32\notepad.exe", "text.txt");
Process.Start(processStartInfo);
谢谢这确实有效。我只想用记事本打开应用程序库。这确实有效。我只想用记事本打开应用程序