【发布时间】:2016-07-04 00:35:01
【问题描述】:
我正在使用以下代码打开带有系统上安装的任意应用程序的任意文件:
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。
-
您的文件名无效示例在“6197_koelkast”和目录分隔符之间有一个空格;我怀疑您的目录实际上在其名称的末尾有一个空格。难道就这么简单吗?
标签: c#