从物理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 

始终可用。