C# 得到两条路径的差
说我有C# 得到两条路径的差,c#,winforms,C#,Winforms,说我有 string path1 = "C:\\apples"; string path2 = "C:\apples\blah\meh.jpg"; 我怎样才能得到: string diff = "\blah\meh.jpg"; 如果路径实际上包含双斜杠(通常不会出现),请感谢: 将路径1中的\\替换为\ 用path2中的空字符串替换path1 string diff = path2.Replace(path1.Replace(@"\\", @"\"), ""); 否则: string d
string path1 = "C:\\apples";
string path2 = "C:\apples\blah\meh.jpg";
我怎样才能得到:
string diff = "\blah\meh.jpg";
如果路径实际上包含双斜杠(通常不会出现),请感谢:
\\
替换为\
path2中的空字符串替换path1
string diff = path2.Replace(path1.Replace(@"\\", @"\"), "");
string diff = path2.Replace(path1, "");
你是如何处理连续两个“\\”的,你注意到我的第一个是“C:\\apple”吗?在某些情况下,你的解决方案会失败。@Milo在
path2
中,你也应该使用“\\”。否则它将给出错误:无法识别的空格序列。@AmitSharma@
可以用来避免这种情况error@Shaharyar对我知道。但在这种情况下,您必须将其声明为:stringpath2=@“C:\apples\blah\meh.jpg”
当然,我自己可以想出很多方法来实现这一点,但我想知道如何在google中有效利用.NET。几秒钟-+@Milo:所以,让它工作起来,开始吧。如果你有问题,在这里问。如果你已经解决了问题,但希望得到审查:去CR。如果你还没有尝试过,那就去做。不管它值多少钱,我认为人们很快就会在这些问题上抢先一步。当然@Milo本可以在这个问题上投入更多的精力,但我认为这个问题并不像其他人所说的那么微不足道。问题的关键是将这两条路径都转换为规范形式(),当我在5年前开始使用SO时,可以在SO上提出什么类型的问题就清楚多了,但现在有太多的StackExchange代码站点,我都感到困惑。