在.NET中将URIpath转换为相对文件系统path

如何在.NET foo\bar.txt绝对或相对URIpath(例如/foo/bar.txt )转换为(segmentwise)相应的相对文件系统path(例如foo\bar.txt )?

我的程序不是一个ASP.NET应用程序。

你已经尝试过Server.MapPath吗?
或者Uri.LocalPath属性? 如下所示:

 string uriString = "file://server/filename.ext"; // Lesson learnt - always check for a valid URI if(Uri.IsWellFormedUriString(uriString)) { Uri uri = new Uri(uriString); Console.WriteLine(uri.LocalPath); } 

我想通过这种方式从相对或绝对URI和基本path生成完整的绝对文件系统path。

附:

 Uri basePathUri = new Uri(@"C:\abc\"); 

从相对URI:

 string filePath = new Uri(basePathUri, relativeUri).AbsolutePath; 

从绝对URI:

 // baseUri is a URI used to derive a relative URI Uri relativeUri = baseUri.MakeRelativeUri(absoluteUri); string filePath = new Uri(basePathUri, relativeUri).AbsolutePath; 

你可以这样做:

 var localPath = Server.MapPath("/foo/bar.txt"); 

详情请参阅MSDN