C# 字符串替换不';t替换c中的双反斜杠#
也许我错过了什么 我有一个变量C# 字符串替换不';t替换c中的双反斜杠#,c#,string,replace,C#,String,Replace,也许我错过了什么 我有一个变量dir,看起来像\\\\SERVERNAME\\dir\\subdir 我需要它看起来像\\SERVERNAME\dir\subdir 我使用了string.Replace例程,但它没有替换双斜杠,问题是当我尝试按原样使用路径时,它找不到文件 如何在此处使用string.Replace以获取有效路径?dir.Replace(@“\\”,@“\”)应该可以做到这一点。在C中,反斜杠“\”用于转义字符串中的字符。例如,在字符串“Hello\nworld”中,“\n”表示
dir
,看起来像\\\\SERVERNAME\\dir\\subdir
我需要它看起来像\\SERVERNAME\dir\subdir
我使用了string.Replace例程,但它没有替换双斜杠,问题是当我尝试按原样使用路径时,它找不到文件
如何在此处使用string.Replace以获取有效路径?dir.Replace(@“\\”,@“\”)
应该可以做到这一点。在C中,反斜杠“\”用于转义字符串中的字符。例如,在字符串“Hello\nworld”中,“\n”表示换行符。因此,一般来说,当C在字符串中看到“\”时,它希望将其视为特殊命令字符的一部分,而不是文字“\”
那么,如何告诉C#您希望在字符串中显示一个文字反斜杠,它不是特殊命令字符的一部分?你避开了反斜杠。转义字符也是反斜杠。因此,要告诉C,您确实希望字符串中出现一个文本“\”(如文件路径),可以使用两个反斜杠:“\
”
假设我想将一个变量设置为以下路径:C:\Temp\FileDrop
在C#中,我必须执行以下操作:
string myPath = "C:\\Temp\\FileDrop";
我怀疑当您看到一个变量的值看起来像\\\\SERVERNAME\\dir\\subdir
时,它正在转义反斜杠字符,因此变量的实际值是\\SERVERNAME\dir\subdir
顺便说一下,如果您要从Windows资源管理器复制和粘贴长路径,那么必须将反斜杠加倍才能避开它们,这可能是一件非常痛苦的事情。所以C#有一个特殊的字符串文字字符“@”。如果在字符串前面加“@”前缀,则该字符串将与所写字符串完全相同。乙二醇
string myPath = @"C:\Temp\FileDrop";
您确定这不仅仅是调试器向您显示它的方式吗?是的,谢谢!是你做的。我把它连接起来,有些部分是原样的,有些部分是带着@逃逸的。很高兴知道答案很有用。