Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
.net Environment.GetCommandLineArgs()的备选方案_.net_Command Line Arguments - Fatal编程技术网

.net Environment.GetCommandLineArgs()的备选方案

.net Environment.GetCommandLineArgs()的备选方案,.net,command-line-arguments,.net,Command Line Arguments,只是想知道是否有其他方法来处理此问题,因为传入时参数会被拆分,如下所示: System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(fileName); psi.Arguments = @"c:\dir1\dir2\dir3\file1.txt"; System.Diagnostics.Process p = new System.Diagnostics.Process(); p.Start

只是想知道是否有其他方法来处理此问题,因为传入时参数会被拆分,如下所示:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(fileName);
psi.Arguments = @"c:\dir1\dir2\dir3\file1.txt";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = psi;
p.Start();
string[] arr = {"filename","c:\dir1","dir2","dir3", "file1.txt"}
psi.Arguments = @"""c:\dir1\dir2\dir3\file1.txt""";
然后,在新的应用程序中,当我们访问Environment.GetCommandLinesARgs()时 我们得到的数组如下所示:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(fileName);
psi.Arguments = @"c:\dir1\dir2\dir3\file1.txt";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = psi;
p.Start();
string[] arr = {"filename","c:\dir1","dir2","dir3", "file1.txt"}
psi.Arguments = @"""c:\dir1\dir2\dir3\file1.txt""";

问题是您没有正确地传递参数

您需要在路径周围包含引号,如下所示:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(fileName);
psi.Arguments = @"c:\dir1\dir2\dir3\file1.txt";
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = psi;
p.Start();
string[] arr = {"filename","c:\dir1","dir2","dir3", "file1.txt"}
psi.Arguments = @"""c:\dir1\dir2\dir3\file1.txt""";

这只有在路径中有空格时才有必要——在发布的代码中不是这样,尽管在实际代码中很可能是这样!