无聊时写了一个视频管理程序,其中一个小功能是调用视频软件打开某个视频,其方法为:
Process.Start(tsmi.site, filePath);
之前一直没出问题,直到最近从电影天堂下载了一个电影《盲点》(顺便推荐一下),以往下载后的文件名中都没有空格,但这次不知道什么原因,文件名中出现了空格,然后调用这个函数后,迅雷看看出现了提示“该文件不存在,可能已经删除”。开始以为是迅雷看看的问题,然后又调用了PPTV,发现仍然出现了相同的问题,这时候仔细查看发现了可能是文件路径中出现了空格导致的问题。于是我用输出方式输出了filePath,发现字符串并未截断(废话,什么时候string类型会自动通过空格截断字符串了?),然后去网上查了下原因,最终看到了一个解答:
“正确的写法应该是:
Process p=Process.Start("\""+t_path.Text.ToString()+"\"","\""+t_file.Text.ToString()+"\""); ”
上述的解决方案就是将路径地址用引号括起来,这种方法在调用cmd命令时也经常使用,就是在cd文件夹路径时,用引号包住路径可以解决路径带空格而无法正确进入文件夹的问题。
附: