【发布时间】:2013-01-25 19:30:10
【问题描述】:
我正在尝试将路径字符串作为参数传递给 Windows 窗体应用程序。我知道我需要添加引号。我目前正在使用以下代码。
DirectoryInfo info = new DirectoryInfo(path);
string.Format("\"{0}\"", info.FullName);
上面的代码在路径类似于D:\My Development\GitRepositories 时有效。但是,当我通过C:\ 时,我得到的参数是C:",因为最后一个\ 字符用作转义字符。
我做错了吗?另外,有没有更好的方法来做到这一点?
提前致谢。
【问题讨论】:
-
需要对转义字符进行转义,"\\" 会变成"\"
-
问题不在于您发布的代码,而在于使用
string.Format("\"{0}\"", info.FullName);结果的代码。发布它,我们会尝试找出您做错了什么。 -
您没有分配字符串格式的结果。你应该这样做:
string result = string.Format("\"{0}\"", info.FullName); -
三个cmets和三个答案,唯一一个理解问题的人太神秘了,无法理解。如果您知道您的路径将以“\”结尾,请将其加倍:
string.Format("\"{0}\\\"", info.FullName);然后子进程会将第一个斜杠视为转义第二个斜杠,而不是后面的结束引号。