围绕这个问题似乎有很多问题,但我发现的问题似乎都不适合我。
我的代码:
string subFolderName = category = "Parent/Sub\\Sub sub";
string category = subFolderName.Replace(@"\\", @"/");
这将返回category与 相同的字符串subFoldername,即:
"Parent/Sub\\Sub sub".
我真正想要的是:
"Parent/Sub/Sub sub"
你试一试
string category = subFolderName.Replace(@"\", @"/");
它会起作用,因为category = "Parent/Sub\\Sub sub";包含一个\
正如Damien_The_Unbeliever在他的评论中所说,当你写成"Parent/Sub\\Sub sub"一个字符串时,它实际上只包含一个\字符。因此,方法在您的字符串中String.Replace找不到。\\
当您使用逐字字符串文字时,您的字符串将完全是您编写它的方式。
string subFolderName = category = @"Parent/Sub\\Sub sub";
string category = subFolderName.Replace(@"\\", @"/");
Console.WriteLine(category);
输出将是;
Parent/Sub/Sub sub
这是一个DEMO.
您如何看待类别的内容?如果您使用的是 VS 调试器,那么它将转义字符串,因此\在字符串中将显示为\\
所以你要么需要
string category = subFolderName.Replace(@"\", @"/");
或者
string category = subFolderName.Replace("\\", "/");
string category = subFolderName.Replace(@"\", "/");
用这个。