代码之家  ›  专栏  ›  技术社区  ›  Matt

在C中是否存在一种方法来获得给定两个绝对路径输入的相对路径?[副本]

  •  16
  • Matt  · 技术社区  · 14 年前

    这个问题已经有了答案:

    在C中是否存在一种方法来获得给定两个绝对路径输入的相对路径?

    也就是说,我有两个输入(以第一个文件夹为基),例如

    c:\temp1\adam\
    

    c:\temp1\jamie\
    

    那么输出将是

    ..\jamie\
    
    3 回复  |  直到 14 年前
        1
  •  10
  •   Kirk Woll    12 年前

    var file1 = @"c:\temp1\adam\";
    var file2 = @"c:\temp1\jamie\";
    
    var result = new Uri(file1)
        .MakeRelativeUri(new Uri(file2))
        .ToString()
        .Replace("/", "\\");
    
        2
  •  2
  •   Andrey    14 年前

    1. c:\temp1\
        3
  •  2
  •   laktak    12 年前

    Uri.UnescapeDataString(new Uri(file1).MakeRelativeUri(new Uri(file2)).ToString())
      .Replace("/", "\\");
    

    var result = new Uri(file1, true)
        .MakeRelativeUri(new Uri(file2, true))
        .ToString()
        .Replace("/", "\\");