绝对相对路径

Mar*_*kus 18 c# path

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

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

我的申请位于

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

然后我想要结果:

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

Sis*_*phe 30

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\");
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,要使用反斜杠的路径,你应该在`.ToString()`后面添加`.Replace('/',Path.DirectorySeparatorChar)`. (4认同)