我试图将双反斜杠替换为简单的反斜杠,但它不起作用。这是一张图片:
我还在想为什么。我看到了这样的帖子,它对他们有用。建议?
更新
对不起,我犯了一个错误,它的一个反斜杠只是我拼写错误 要替换的代码是
string clear_patch = path.Replace(@"\\","\");
我试图将双反斜杠替换为简单的反斜杠,但它不起作用。这是一张图片:
我还在想为什么。我看到了这样的帖子,它对他们有用。建议?
更新
对不起,我犯了一个错误,它的一个反斜杠只是我拼写错误 要替换的代码是
string clear_patch = path.Replace(@"\\","\");
这是工作。\\
在调试期间检查时不会转义。尝试将值打印到控制台窗口或网页。
编辑*您似乎很困惑。
您的路径实际上不包含任何双斜杠\\
,它只是看起来那样,因为在调试期间查看字符串时单斜杠被转义了。考虑阅读转义序列。
如果您想转义单斜杠,则不要在替换中使用逐字字符串文字,例如string.Replace("\\", "-")
,它将用连字符替换路径中的所有单斜杠,-
尽管我不确定您为什么要这样做?请注意,在调试期间进行检查时,这仍会将路径显示为带有\\
斜杠。打印到控制台窗口将显示:
C:-dev-vsprojects-VerificaionDeFirmas-VerificaionDeFirmas-verificaciondefirmas.txt
监视窗口向您显示转义的字符串。所以当它显示\\
字符串只包含\
.
您的替换正在尝试替换\\
,因为您使用的是文字指示符@
。
将替换代码更改为:
string clear_path = path.Replace("\\", "-");
使用"\\"
, 而不是@"\\"
因为这会寻找 2 个\
字符。
请注意,可视化工具始终显示实际字符的\\
符号。\
这就是你想要做的:
string clear_path = path.Replace(@"\","-");
调试器中的表示显示\\
,但这意味着转义字符和\
你不应该双重逃避它,要么你这样做:
string clear_path = path.Replace("\\","-")
或者
string clear_path = path.Replace(@"\","-")