36
A
回答
32
也許this question是你在找什麼。 在那裏,他們建議:
String RelativePath = AbsolutePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);
22
public static string MapPathReverse(string fullServerPath)
{
return @"~\" + fullServerPath.Replace(HttpContext.Current.Request.PhysicalApplicationPath,String.Empty);
}
+0
這適用,但在我的情況下,由於某種原因PhysicalApplicationPath是小寫的,但我的fullServerPath中的路徑即使從文件系統讀取也不是。由於Windows沒有區分大小寫的路徑,所以將其全部轉換爲小寫可能沒有問題 – 2017-01-12 08:04:24
8
你也可以做這樣的事情:
string relativePath = absolutePath.Replace(HttpContext.Current.Server.MapPath("~/"), "~/").Replace(@"\", "/");
的好處是,你不需要HttpContext.Current.Request
。
+0
這實際上是一個更好的答案,因爲您不需要請求對象。 – 2017-08-21 10:57:08
9
Request.ServerVariables["APPL_PHYSICAL_PATH"]
很好,但並不總是如此。只有存在HTTP請求時纔可用。
在另一方面通話
HostingEnvironment.ApplicationPhysicalPath
是總是可用。
相關問題
- 1. 物理路徑,根路徑,虛擬路徑,相對虛擬路徑,應用程序路徑和絕對路徑的區別?
- 2. 從物理路徑轉換到虛擬路徑
- 3. StreamReader Server.MapPath - 給出的物理路徑,預期的虛擬路徑
- 4. C:/ Users/...是物理路徑,但預計虛擬路徑
- 5. Site.less'是一個物理路徑,但預計虛擬路徑
- 6. 如何將物理路徑轉換爲虛擬路徑在C#
- 7. PHP:將虛擬路徑轉換爲物理路徑
- 8. 使用Server.Mappath - 物理路徑給出,虛擬路徑預期
- 9. 將已知物理路徑轉換爲虛擬路徑
- 10. 如何獲取虛擬目錄物理路徑
- 11. 相對虛擬路徑不在這裏
- 12. 相對虛擬路徑是不允許
- 13. 相對網址到虛擬路徑?
- 14. Hadoop從絕對路徑和基本路徑獲取相對路徑
- 15. 從相對路徑c獲取絕對路徑#
- 16. 在asp classic中獲取完整路徑的虛擬路徑
- 17. ASP.NET MVC從虛擬路徑
- 18. 虛擬路徑null?
- 19. 獲取相對路徑JNI
- 20. 獲取相對路徑
- 21. 獲取的相對路徑
- 22. 獲取相對路徑
- 23. wiredep是returing物理路徑,而不是相對路徑
- 24. App在ASP.NET中物理路徑的相對路徑
- 25. 從maven的相對路徑獲取完整路徑
- 26. URL重寫虛擬路徑始終保持虛擬路徑
- 27. 從桌面應用程序獲取虛擬目錄的物理路徑
- 28. IIS應用程序的物理路徑應該與虛擬路徑匹配嗎?
- 29. 如何獲取物理路徑的服務器路徑?
- 30. 從$().css(「background-image」)獲取相對路徑
考慮到IIS中的多個虛擬目錄可能映射到相同的物理目錄,即使在單個應用程序中也是如此。那麼如何回答這個問題呢? – 2011-05-21 13:09:05