如何在字符串中同时替换正斜杠(//)和反字(\)斜杠以正斜杠(/)?

时间:2019-07-12 07:46:26

标签: c# asp.net string

我有一个像这样的字符串: D:\\ folder \\ folder \\ folder / folder / folder 由于它与前进和后退单词混合使用,因此目录无法 查找文件,但如果我这样更改 D:\ folder \ folder \ folder \ folder \ folder 路径正确。

我尝试这样做

sourceStreamId=D:\\folder\\folder\\folder/folder/folder
string appdomain = HttpRuntime.AppDomainAppPath;
string destinationFile=System.IO.Path.Combine(appdomain,sourceStreamId).Replace("\\", @"\");

但是这导致了这样的字符串 D:\\ folder \\ folder \\ folder / folder / folder

有人可以为此提出建议吗

我去过这里:How to replace the double backslash with a single backslash,但是该字符串只有两个反斜杠斜杠,而我同时具有正反斜杠

3 个答案:

答案 0 :(得分:0)

要替换漫游器,只需两次调用Replace

string destinationFile = System.IO.Path.Combine(appdomain,sourceStreamId)
                                       .Replace(@"\\", @"\")
                                       .Replace("/", @"\");

参考文献: DotNetFiddle Example

答案 1 :(得分:0)

尝试如下:-

string destinationFile=System.IO.Path.Combine(appdomain,sourceStreamId).Replace(@"\\", @"\");

例如:-

string path = "C:\Hg\temp/test\\LogFile.txt";
path = path.Replace(@"\\", @"\"); 
string output = path.Replace(@"/", @"\"); 

输出>>> C:\ Hg \ temp \ test \ LogFile.txt

答案 2 :(得分:0)

您可以利用Path为您修复它:

var ourceStreamId = "D:\\folder\\folder\\folder/folder/folder";

var path = Path.GetFullPath(ourceStreamId);
Console.WriteLine(path);
//output: D:\folder\folder\folder\folder\folder