C#命令行参数末尾反斜杠:是Bug还是特性?
Visual Studio调试参数与命令行中带空格路径的转义规则
当需要传递带空格的路径(例如c:\some folder with a blank)作为程序参数时,无论在Visual Studio的调试选项里输入,还是直接在命令行调用程序,都需要用双引号对路径进行包裹转义,但要注意以下两种写法的差异:
正确的转义写法:
"c:\some folder with a blank"
程序的args[0]参数会获取到:"c:\\some folder with a blank"(路径中的单反斜杠被自动转义为双反斜杠,外层的双引号仅作为参数包裹符,不会被包含在实际参数内容中)错误的转义写法:
"c:\some folder with a blank\"
这种写法下,args[0]实际接收的内容是:"c:\\some folder with a blank\""——末尾的反斜杠会把原本用来闭合的双引号转义成普通字符串字符,导致这个引号被包含在参数里,不符合预期的路径格式
内容的提问来源于stack exchange,提问作者Dee J. Doena
相关产品推荐
相关产品推荐

