2

我已经阅读了许多解决此问题的方法并尝试了所有方法,但找不到完成此任务的正确方法。我的代码是:

p.StartInfo.Arguments = path;

我需要将路径变量用“标记”包围,因为它是一个文件的路径,该文件的目录名和文件名中有空格。如何在路径变量的开头和结尾放置一个“?伪代码将是:

p.StartInfo.Arguments = DoubleQuote +  path + DoubleQuote;

作为这种情况的后续行动 - 一旦我的 .exe 文件收到路径 - 路径完全遵循“\””建议。但是,我必须将 .exe 文件代码中的路径包含在“\””中,所以它还可以找到 .xlsx 文件,因为路径和文件名中有空格。只是想为遇到这种情况的其他人跟进这个问题,并想知道为什么命令行参数没问题,但是 .exe 文件没有找到该文件 - 两个应用程序都需要包含在“\”中。

4

2 回答 2

7

不确定您已经看到并尝试过哪些解决方案,但您需要转义引号

p.StartInfo.Arguments = "\"" + path + "\"";

或者如果您想使用逐字字符串文字(用于""转义)

p.StartInfo.Arguments = @""" + path + """;

如果您有很多参数,您可能会发现String.Format方法更易于维护。

p.StartInfo.Arguments = string.Format(@"""{0}""", path);
于 2013-08-06T19:16:18.503 回答
0

您只需要将双引号字符附加到字符串的开头和结尾。创建双引号可以通过以下任一方式完成

  • "\""
  • @""""
于 2013-08-06T19:17:28.410 回答