这几天做一个通讯程序,要通过“运行”开启一个进程
结果有时候可以正常调用,有时候就出现问题
出问题代码如下:
Process p=Process.Start(t_path.Text.ToString(),t_file.Text.ToString());
Process.start()第一个参数是运行的程序名称,后面是该程序参数
如果这两个路径中不含空格的时候就可以正常运行,
如果包含像"D:\Program Files\"或者"G:\Documents and Settings"之类的路径程序就会出问题
原因是在运行行里面 如果运行的程序只接收一个参数,参数里面夹一个空格就相当于回车
也就是说,如果运行输入:c:\aa.exe d:\Program Files\tt.txt
其实运行的是:c:\aa.exe d:\Program
这样肯定会出错了
正确的写法应该是:
Process p=Process.Start("\""+t_path.Text.ToString()+"\"","\""+t_file.Text.ToString()+"\"");
这种写法绝对保险。