我有一个用例,我将处理本地文件路径(例如c:\foo\bar.txt
)和URI(例如http://somehost.com/fiz/baz
)。我还将处理相对路径和绝对路径,因此我需要Path.Combine
和朋友等功能。
是否存在我应该使用的现有C#类型? Uri type可能会有效,但一眼就看出来,它似乎只是URI。
答案 0 :(得分:22)
使用Uri类,它似乎正在工作。它将任何文件路径转换为Uri中的`file:/// ...'语法。它按预期处理任何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