Чтобы получить относительный путь в C#, вы можете использовать различные методы в зависимости от ваших требований. Вот несколько подходов:
-
Использование класса
Path:string fullPath = @"C:\folder\subfolder\file.txt"; string baseDirectory = @"C:\folder"; string relativePath = Path.GetRelativePath(baseDirectory, fullPath); -
Использование класса
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()); -
Использование манипуляций со строками:
string fullPath = @"C:\folder\subfolder\file.txt"; string baseDirectory = @"C:\folder"; string relativePath = fullPath.Replace(baseDirectory, string.Empty).TrimStart('\\'); -
Использование класса
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;
Эти методы позволяют получить относительный путь от заданного базового каталога к определенному файлу или папке.