繁体   English   中英

即使文件存在,Process.start也会导致找不到文件

[英]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对象的进程开始,文件路径将空格分别作为字符串传递。

在路径中使用带参数和空格的Process.Start

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM