我使用以下代码通过系统上安装的任意应用程序打开任意文件:
if (File.Exists(_document.DocumentFullPath))
{
Process.Start(_document.DocumentFullPath);
}
else MessageBox.Show(string.Format("Document {0} does not exist!", _document.DocumentFullPath));
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,我看到 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
Run Code Online (Sandbox Code Playgroud)
我在 Windows 10 上运行。
小智 5
文件路径中有空格吗?File.Exists 可以很好地处理空格,大概 Windows 资源管理器也可以,但 Process.Start 可能不能。
我想这就是你想要的吧,伙计。使用 ProcessStartInfo 对象和带有空格的文件路径(以字符串形式单独传递)来启动进程。
将 Process.Start 与路径中的参数和空格一起使用
| 归档时间: |
|
| 查看次数: |
6834 次 |
| 最近记录: |