19

我有一个用例,我将同时处理本地文件路径(例如c:\foo\bar.txt)和 URI(例如http://somehost.com/fiz/baz)。我还将处理相对路径和绝对路径,因此我需要类似Path.Combine和朋友的功能。

我应该使用现有的 C# 类型吗?Uri 类型可能有效,但乍一看,它似乎只是 URI。

4

1 回答 1

29

使用 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
于 2009-04-28T19:11:36.063 回答