也许我在这里遗漏了一些东西
我有一个变量dir
,看起来像\\\\SERVERNAME\\dir\\subdir
我需要它看起来像\\SERVERNAME\dir\subdir
我使用了string.Replace例程,但它没有替换双斜杠,问题是当我尝试按原样使用路径时,它找不到文件。
我如何使用string.Replace来获取有效路径?
答案 0 :(得分:2)
dir.Replace(@"\\", @"\")
应该可以解决问题。
答案 1 :(得分:1)
在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";