Получение относительных путей в C# для операций с файлами и папками

Чтобы получить относительный путь в C#, вы можете использовать различные методы в зависимости от ваших требований. Вот несколько подходов:

  1. Использование класса Path:

    string fullPath = @"C:\folder\subfolder\file.txt";
    string baseDirectory = @"C:\folder";
    string relativePath = Path.GetRelativePath(baseDirectory, fullPath);
  2. Использование класса Uri:

    string fullPath = @"C:\folder\subfolder\file.txt";
    string baseDirectory = @"C:\folder";
    Uri relativeUri = new Uri(baseDirectory).MakeRelativeUri(new Uri(fullPath));
    string relativePath = Uri.UnescapeDataString(relativeUri.ToString());
  3. Использование манипуляций со строками:

    string fullPath = @"C:\folder\subfolder\file.txt";
    string baseDirectory = @"C:\folder";
    string relativePath = fullPath.Replace(baseDirectory, string.Empty).TrimStart('\\');
  4. Использование класса DirectoryInfo:

    string fullPath = @"C:\folder\subfolder\file.txt";
    string baseDirectory = @"C:\folder";
    DirectoryInfo baseDirInfo = new DirectoryInfo(baseDirectory);
    string relativePath = baseDirInfo.FullName != fullPath ? fullPath.Substring(baseDirInfo.FullName.Length + 1) : string.Empty;

Эти методы позволяют получить относительный путь от заданного базового каталога к определенному файлу или папке.