我有一条路径:
"C:\\Users\\dev\\Test\\TestResults\\Config\\Report.xml"
我需要检查这个路径是否有文件夹“TestResults”,如果有,那么我需要删除它并将新路径返回为
"C:\\Users\\dev\\Test\\Config\\Report.xml"
我知道我可以使用修剪和拆分来实现这一点。但只是为了确保我选择了正确的选择。实现这一目标的最佳方法是什么?
任何帮助真的很受欢迎。
我有一条路径:
"C:\\Users\\dev\\Test\\TestResults\\Config\\Report.xml"
我需要检查这个路径是否有文件夹“TestResults”,如果有,那么我需要删除它并将新路径返回为
"C:\\Users\\dev\\Test\\Config\\Report.xml"
我知道我可以使用修剪和拆分来实现这一点。但只是为了确保我选择了正确的选择。实现这一目标的最佳方法是什么?
任何帮助真的很受欢迎。
您可以使用String.Replace
类似的方法;
返回一个新字符串,其中当前字符串中出现的所有指定 Unicode 字符或字符串都替换为另一个指定的 Unicode 字符或字符串。
string path = "C:\\Users\\dev\\Test\\TestResults\\Config\\Report.xml";
path = path.Replace("\\TestResults", string.Empty);
Console.WriteLine(path);
输出将是;
C:\Users\dev\Test\Config\Report.xml
这里有一个DEMO。
在这种情况下,我不会使用字符串替换方法。为什么?
例如:
string path = "C:\\Users1\\Users2\\Users122\\Users13\\Users133\\filename.xml";
path = path.Replace("\\TestResults", string.Empty);
// you will get "C:\Users222333\filename.xml"
这不是你所期望的。
那么如何解决这个问题,
path = string.Join(Path.DirectorySeparatorChar.ToString(),
path.Split(Path.DirectorySeparatorChar).Where(x=> x!="Users1").ToArray()));
//C:\Users2\Users122\Users13\Users133\filename.xml