.NET使用ServerManager獲取網站物理路徑
阿新 • • 發佈:2018-08-18
cto sin span code direct virt 通過 server 幫助
最近因為工作需要,用wpf做了一個輔助小工具,如下圖
為了獲取網站的物理路徑,我分析了通過ServerManager獲取到的變量,也通過百度搜索了很多,但仍然沒有找到方法。
後來使用必應,在國外網站找到了,不知道是不是沒有正確的打開方式,所以經歷如此曲折,下面我把獲取物理路徑的方法寫下來供大家參考,希望對後人有所幫助。
1 private string GetWebSitePhysicalPath(Site site) 2 { 4 var applicationRoot = site.Applications.Where(a => a.Path == "/").Single(); 5 var virtualRoot = applicationRoot.VirtualDirectories.Where(v => v.Path == "/").Single(); 6 string ret = virtualRoot.PhysicalPath; 7 string[] strList = ret.Split(‘%‘).Where(t => t != "%").ToArray(); 8 ret = ""; 9 for(int i = 0; i < strList.Length; i++) 10 { 11 string sPath = Environment.GetEnvironmentVariable(strList[i].ToLower()); 12 if (string.IsNullOrEmpty(sPath)) 13 { 14 ret += strList[i]; 15 } 16 else17 { 18 ret += sPath; 19 } 20 } 21 return ret; 22 }
參考資料:
[1]https://stackoverflow.com/questions/5431703
.NET使用ServerManager獲取網站物理路徑