我已经阅读了很多关于此问题的解决方案并尝试了所有这些解决方案,但找不到完成此任务的正确方法。我的代码是:
p.StartInfo.Arguments = path;
我需要用 "标记包围路径变量,因为它是一个在目录名和文件名中包含空格的文件的路径。如何在路径变量的开头和结尾放置一个 "?伪代码将是:
p.StartInfo.Arguments = DoubleQuote + path + DoubleQuote;
作为这种情况的后续行动 - 一旦我的 .exe 文件收到路径 - 路径完全遵循“\”建议。但是,我不得不将 .exe 文件代码中的路径包含在“\""所以它也可以找到 .xlsx 文件,因为路径和文件名中有空格。只是想为遇到这种情况的其他人跟进,并想知道为什么命令行参数没问题,但 .exe 文件找不到该文件 - 两个应用程序都需要包含在“\”中。
最佳答案
不确定您已经看到和尝试过哪些解决方案,但您需要转义引号
p.StartInfo.Arguments = "\"" + path + "\"";
或者如果你想使用逐字字符串文字(使用""
转义)
p.StartInfo.Arguments = @""" + path + """;
如果你有很多参数,你可能会发现 String.Format方法更易于维护。
p.StartInfo.Arguments = string.Format(@"""{0}""", path);
关于c# - 传递用双引号括起来的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088626/