在.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