我正在尝试将文件路径传递给 a C# Console Application
,但在字符串到达控制台应用程序时遇到了不正确的问题。
如果我使用文件路径参数从命令行运行我的应用程序:
MyApp "C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject\"
弹出一个窗口对话框并通知我我的应用程序已停止工作,当我单击 Debug 选项时,我可以看到结果args[0]
是:
C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject"
请注意,最后仍然有一个尾随引号。
如果我传递第二个参数:
MyApp "C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject\" "any old string"
我再次收到错误,在调试中查看后,我看到 args[0] 是:
C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject" 任何
我很困惑为什么会这样。我唯一的猜测是字符串中的反斜杠导致字符串中的某种转义序列?编辑:我注意到上面的字符串示例中也发生了同样的事情!似乎 \" 在这里引起了问题。
我只想传入当前解决方案目录的文件路径,并使用 $(SolutionDir) 从预构建事件中调用我的应用程序,并且知道我可以通过其他方式获取当前解决方案的路径。但这是最简单的,我很好奇为什么它不能按预期工作。