我想在程序中实现直接打开文件功能。使用了下面的代码
Runtime.getRuntime().exec("cmd /c start "+filepath)filepath 是文件所在路径。但是当路径中出现空格时,比如:F:\My Documents\K073.pdf 就会出现错误“无法找到文件F:\My”。请问这种情况如何解决?各位大哥别告诉我给文件夹改名啊 o(∩_∩)o...
Runtime.getRuntime().exec("cmd /c start "+filepath)filepath 是文件所在路径。但是当路径中出现空格时,比如:F:\My Documents\K073.pdf 就会出现错误“无法找到文件F:\My”。请问这种情况如何解决?各位大哥别告诉我给文件夹改名啊 o(∩_∩)o...
楼主【gigi09】截止到2008-07-09 15:18:29的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:20
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
Runtime.getRuntime().exec("cmd /c start \""+filepath+"\"");
我加上filepath两端的\" 之后确实不提示错误了,但是运行之后只显示一个DOS界面 标题栏是完整的filepath内容,但是系统关联的应用程序没出呀来~现在的情况是:filepath等于 F:\My Documents\K073.pdf 系统提示错误
filepath等于 F:\MyDocuments\K073.pdf 一切正常 可以调用PDF阅读器打开
filepath等于 \"F:\My Documents\K073.pdf\" 系统不提示错误,但只有DOS窗口
filepath等于 \"F:\MyDocuments\K073.pdf\" 还是只有DOS窗口继续求助中~~~~
START:Start a specified program or command in a separate window.
Syntax:
START "title" [/Dpath] [options] "command" [parameters]从语法看到,第一个字符串参数被当作新打开的CMD窗口的TITLE,所以前面直接在文件路径加引号并没有打开文件,而是只打开一个CMD窗口,可以注意到CMD窗口的标题正是文件的路径名,呵呵。
解决办法:使用START命令的/Dpath参数选项,如下:String filepath = "\"F:\\My Documents\" K073.pdf";
Runtime.getRuntime().exec("cmd /c start /D"+filepath); OK,试试看!
String filepath = "F:\My Documents\K073.pdf ";
filepath = "\"" + filepath + "\""; //先给filepath 两端加上引号
Runtime.getRuntime().exec("cmd /c start "+"\""+"\" "+ filepath); //再给start后面加一对引号
用我提供的语句试一下,在我的机器上已经可以打开文件,
简单点的语句是:
Runtime.getRuntime().exec(CMD /C START /D"\"F:\\My Documents\" K073.pdf"); //注意目录是用引号引起来的,且跟/D之间没有空格,和文件名之间有一个空格。
不知你从哪里查到的:start 后跟一对不包括任何内容的双引号 ??
你可以在CMD窗口中输入 START /?来看看START命令的语法啊!"title"是用引号引起来的,也就是窗口的标题;/Dpath是指定起始目录的;后面的command/program可以是文件名,会自动调用相关联的应用程序来打开文件,这就是LZ小妹的目的。
就是在空格的时候分割,好象试过~,就像传几个参数一样的
的确可行,比我的方法更简单,学习了!