【发布时间】:2020-11-18 15:53:15
【问题描述】:
我目前正在使用 C# 开发一个应用程序,该应用程序将启动一个具有给定参数(应用程序路径和我们试图打开的文档)的应用程序。
这是我目前尝试过的代码:
var pi = new ProcessStartInfo(filePath)
{
Arguments = "\"" + Path.GetFileName(filePath) + "\"",
UseShellExecute = false,
WorkingDirectory = Path.GetDirectoryName(filePath),
FileName = appPath,
Verb = "OPEN"
};
Process.Start(pi);
其中filePath 是我们要打开的文件的路径,appPath 是我们要在其中打开文件的应用程序的路径 (C:\Program Files\...\POWERPNT.exe)。
此解决方案适用于带有和不带空格的文件,但不适用于带有“%20”的文件,这些文件拒绝在 PowerPoint 等应用程序中打开。示例如下:
“PowerPoint 无法打开此类文件 (C:\...\...\Statistics Made Easy.ppt)。”
在 Windows 资源管理器中,文件名为 Statistics%20Made%20Easy.ppt。请注意,错误消息中的 %20 已替换为空格。可能是什么问题?
【问题讨论】:
-
空格与它无关。 %20 有问题,它是 %、2 和 0,而不是空格。
-
@ThomasWeller 是的,这就是问题所在(不是空格我不好)。 PowerPoint 无法打开文件的原因可能是什么?
-
原因可能是
filePath包含空格而不是%20。问题可能在显示的代码之前 -
@Adassko:它适用于空格。它不适用于 %20
-
@ThomasWeller 看起来文件名为“Statistics%20Made”,但他试图打开“Statistics Made”
标签: c# command-line-arguments process.start