Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 系统在进程启动中找不到指定的文件异常_C#_.net_Exception_Process - Fatal编程技术网

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

我在从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";  
    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);

谢谢这确实有效。我只想用记事本打开应用程序库。这确实有效。我只想用记事本打开应用程序