C# 控制台应用程序
中,但是在到达控制台应用程序之前,字符串不正确。如果我从命令行运行我的应用程序,并带有文件路径参数:
MyApp "C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject\"
一个Windows对话框弹出,告诉我我的应用程序已停止工作,当我点击调试选项时,我可以看到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" any
我对此感到困惑。我的猜测是字符串中的反斜杠导致了某种转义序列?编辑:我注意到在上面的字符串示例中也出现了同样的问题!似乎 \" 在这里会引起问题。
我只想传递当前解决方案目录的文件路径,并从预构建事件中使用$(SolutionDir)调用我的应用程序,并知道我可以通过其他方式获取当前解决方案的路径。但这是最简单的方法,我很好奇为什么它不能按预期工作。
Directory.GetCurrentDirectory()
获取当前路径。 - Kamil Budziewski