[英]Process.start results in file not found even though the file exists
我使用以下代码打开一个任意文件与系统上安装的任意应用程序:
if (File.Exists(_document.DocumentFullPath))
{
Process.Start(_document.DocumentFullPath);
}
else MessageBox.Show(string.Format("Document {0} does not exist!", _document.DocumentFullPath));
当我执行此代码时,我看到file.Exists返回true,因此该文件确实存在。 但随后打开相应的应用程序,例如图像查看器或pdf查看器,具体取决于我尝试打开的文件类型(jpg或pdf),但它在该应用程序中显示无法找到该文件的错误。 没有异常被抛出。 这不会一直发生,只适用于某些文件。 如果我尝试通过复制粘贴浏览器中的DocumentFullPath内容来手动打开这些文件,则该文件在适用的应用程序中正确打开。
我不明白有什么不对。 无效的文件名示例:
C:\Users\stuyckp\Documents\Visual Studio 2010\Projects\WPF\FrakoKlantOpvolgingWPF\FrakoKlantOpvolgingWPF\bin\Debug\ProjectDocumenten\11339_Wigbers\6197_koelkast \big-money.jpg
我在Windows 10上运行。
你在文件路径中有空格吗? File.Exists可以很好地处理空间,可能与Windows资源管理器一样,但Process.Start可能无法处理。
我想这就是你想要的萌芽。 使用ProcessStartInfo对象的进程开始,文件路径将空格分别作为字符串传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.