.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""";
这只有在路径中有空格时才有必要——在发布的代码中不是这样,尽管在实际代码中很可能是这样!