тип c# для обработки относительных и абсолютных URI и локальных путей к файлам

у меня есть варианты использования, где я буду иметь дело с обоими локальными путями файлов (например,c:foobar.txt) и URI (например http://somehost.com/fiz/baz). Я также буду иметь дело с относительными и абсолютными путями, поэтому мне нужна функциональность, такая как Path.Combine и друзей.

есть ли существующий тип C#, который я должен использовать? на тип Uri может работать, но на беглый взгляд, это, кажется, только URI.

1 ответов


используя класс Uri, он, похоже, работает. Он превращает любой путь к файлу в ' file:///...- синтаксис в Uri. Он обрабатывает любой URI, как ожидалось, и имеет возможность иметь дело с относительными URI. Это зависит от того, что еще вы пытаетесь сделать с этого пути.

(обновлено, чтобы показать использование относительных Uri):

string fileName = @"c:\temp\myfile.bmp";
string relativeFile = @".\woohoo\temp.bmp";
string addressName = @"http://www.google.com/blahblah.html";

Uri uriFile = new Uri(fileName);
Uri uriRelative = new Uri(uriFile, relativeFile);
Uri uriAddress = new Uri(addressName);

Console.WriteLine(uriFile.ToString());
Console.WriteLine(uriRelative.ToString());
Console.WriteLine(uriAddress.ToString());

дает мне этот выход:

file:///c:/temp/myfile.bmp  
file:///c:/temp/woohoo/temp.bmp  
http://www.google.com/blahblah.html