首页 新闻 会员 周边 捐助

在C#中启动带参数的进程的问题

0
悬赏园豆:10 [已解决问题] 解决于 2009-11-17 21:25

我现在想在C#中打开特定的文件,并且指定特定的打开方式。

下面是代码

1.

ProcessStartInfo psi = new ProcessStartInfo(@"D:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe");


psi.UseShellExecute = false;


psi.Arguments = @" d:\a a\H3C实验手册.pdf";

Process.Start(psi);

2.

System.Diagnostics.Process.Start(@"D:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe", @" d:\a a\H3C实验手册.pdf");

这两个代码实现的是同一个效果,都是指定D盘  “a a”文件夹(注意a a中间有个空格)下的“H3C实验手册.pdf”文件用Foxit Reader.exe 打开。

但是上面指定文件的路径中有个“空格”,如果没有在别的没有空格的路径下打开文件就可以,若文件路径中有空格的话,就不行了。

自己的分析:上面的程序实际上就是用命令行参数来启动程序,而命令行参数是用空格开区分不同的参数,所以文件路径中有空格后,这个参数是被截断了。

 

自己想了好久都没有解决方案,忘高手赐教!!

 

 

Xiangism的主页 Xiangism | 初学一级 | 园豆:80
提问于:2009-11-16 22:41
< >
分享
最佳答案
0

一个将路径改为8.3格式

http://www.cnblogs.com/winzheng/archive/2008/03/13/1103001.html

收获园豆:10
winzheng | 大侠五级 |园豆:8797 | 2009-11-16 23:10
其他回答(1)
0

你不带@,直接用\\转义是一下

Process myProcess = new Process();
            myProcess.StartInfo.FileName ="D:\\a a\\123 456.docx";
            myProcess.StartInfo.Verb = "Print";
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.Start();

上面的代码测试是通过的

persialee | 园豆:3217 (老鸟四级) | 2009-11-16 23:47
你真的测试过吗,我怎么试了,还是只能打开个空程序,而无法打开文件
支持(0) 反对(0) Xiangism | 园豆:80 (初学一级) | 2009-11-17 21:25
哦,我开始看错了,你的方法可以,直接用open方法打开文件。这也解决了我的另一个问题,你去那里随便回答吧,我给分你……
支持(0) 反对(0) Xiangism | 园豆:80 (初学一级) | 2009-11-17 22:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册