绝对相对路径

时间:2012-11-07 09:29:31

标签: c# path

我从OpenFileDialog获取一个文件,该文件返回一个字符串,其中包含所选文件的绝对路径。现在我希望该路径作为给定路径的相对路径(在这种情况下是我的应用程序的路径)。

所以我想说我得到了一个文件的路径: c:\myDock\programming\myProject\Properties\AssemblyInfo.cs

我的申请表位于

c:\myDock\programming\otherProject\bin\Debug\program.exe

然后我想要结果:

..\..\..\myProject\Properties\AssemblyInfo.cs

1 个答案:

答案 0 :(得分:28)

Uri类有MakeRelativeUri方法可以提供帮助。

public static string MakeRelative(string filePath, string referencePath)
{
    var fileUri = new Uri(filePath);
    var referenceUri = new Uri(referencePath);
    return referenceUri.MakeRelativeUri(fileUri).ToString();
}

var result = MakeRelative(@"C:\dirName\dirName2\file.txt", @"C:\dirName\");