Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 得到两条路径的差_C#_Winforms - Fatal编程技术网

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";

如果路径实际上包含双斜杠(通常不会出现),请感谢:

  • 将路径1中的
    \\
    替换为
    \

  • 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代码站点,我都感到困惑。