Подтвердить что ты не робот

Абсолютный относительный путь

Я получаю файл из OpenFileDialog, который возвращает строку с абсолютным путем к выбранному файлу. Теперь я хочу, чтобы этот путь относительный путь к данному пути (в этом случае путь к моему приложению).

Итак, скажем, я получаю путь к файлу: c:\myDock\programming\myProject\Properties\AssemblyInfo.cs

и мое приложение находится в

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

тогда я хочу получить результат:

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

4b9b3361

Ответ 1

Класс 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\");