从物理path获取相对的虚拟path
如何从asp.net中的物理path获取相对虚拟path? 相反的方法如下所示:
Server.MapPath("Virtual Path Here");
但是上面的方法是什么呢?
也许这个问题是你在找什么。 在那里他们build议:
String RelativePath = AbsolutePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);
public static string MapPathReverse(string fullServerPath) { return @"~\" + fullServerPath.Replace(HttpContext.Current.Request.PhysicalApplicationPath,String.Empty); }
你也可以做这样的事情:
string relativePath = absolutePath.Replace(HttpContext.Current.Server.MapPath("~/"), "~/").Replace(@"\", "/");
好处是,你不需要HttpContext.Current.Request
。
Request.ServerVariables["APPL_PHYSICAL_PATH"]
很好,但并不总是如此。 只有存在HTTP请求时才可用。
另一方面的电话
HostingEnvironment.ApplicationPhysicalPath
始终可用。