最近在做文件搜索器时遇到的一个棘手的问题,就是用runtime.exec调用cmd打开文件,如果路径带空格,则会提示找不到路径,打不开文件,最后经过一番折腾,终于知道如何解决,特写此博客分享:
解决方法
1. 在windows下如果 想打开的是文件 :D:\Program Files\test.txt
2. 那么我们输入 start ” ” “D:\Program Files\test.txt 然后回车即可
3. 就是在 start 后加上一个空格 加上一对双引号 加上 空格 加上一对双引号 (最后一个双引号里面是真实的路径和文件名)
4. 代码(正确和错误的写法):
Runtime runtime = Runtime.getRuntime(); //获取runtime对象
String path = D:\Program Files\test.txt; //文件路径 **注意有空格**
//错误的写法
runtime.exec("cmd /c start " + path); //**执行CMD 命令** 重点
//正确的写法:
// \"也就是一个双引号: 规则是:satrt + 空格 + "" + 空格 + " + 真实路径 + "
runtime.exec("cmd /c start " + "\"\" \"" + fomatPath(path) + "\"");//**执行CMD 命令** 重点