asp.net獲取網站絕對路徑

網站在服務器磁盤上的物理路徑: HttpRuntime.AppDomainAppPath
虛擬程序路徑: HttpRuntime.AppDomainAppVirtualPath
任何於Request/HttpContext.Current等相關的方法, 都只能在有請求上下文或者頁面時使用. 即在無請求上下文時,HttpContext.Current爲null. 而上面提到的方法一直可用.

對於全局Cache對象的訪問亦然.
 
示例:輸出asp.net 網站路徑。
[csharp] view plaincopy
  1. private void responseHtml()  
  2.     ...{  
  3.          System.Text.StringBuilder sb = new System.Text.StringBuilder();  
  4.          sb.Append(string.Format("當前時間: {0}", Server.HtmlEncode(DateTime.Now.ToString())));  
  5.          sb.Append("<br />");  
  6.          sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.CurrentExecutionFilePath)));  
  7.          sb.Append("<br />");  
  8.          sb.Append(string.Format("獲取當前應用程序的根目錄路徑: {0}", Server.HtmlEncode(Request.ApplicationPath)));  
  9.          sb.Append("<br />");  
  10.          sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.FilePath)));  
  11.          sb.Append("<br />");  
  12.          sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.Path)));  
  13.          sb.Append("<br />");  
  14.          sb.Append(string.Format("獲取當前正在執行的應用程序的根目錄的物理文件系統路徑: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));  
  15.          sb.Append("<br />");  
  16.          sb.Append(string.Format("獲取與請求的 URL 相對應的物理文件系統路徑: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));  
  17.          sb.Append("<br />");  
  18.          Response.Write(sb.ToString());  
  19.      }  
  20. }  

輸出:當前時間: 2007-08-30 11:03:49
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
獲取當前應用程序的根目錄路徑: /aDirectory
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
獲取當前正在執行的應用程序的根目錄的物理文件系統路徑: E:\Visual Studio 2005\
獲取與請求的 URL 相對應的物理文件系統路徑: E:\Visual Studio 2005\\aDirectory\
在ASP.NET編程中經常需要用Request獲取url的有關信息.
測試的url地址是http://www.test.com/testweb/default.aspx, 結果如下:
Request.ApplicationPath:                     /testweb
Request.CurrentExecutionFilePath:       /testweb/default.aspx
Request.FilePath:                                /testweb/default.aspx
Request.Path:                                     /testweb/default.aspx
Request.PathInfo: 
Request.PhysicalApplicationPath:          E:\WWW\testweb\
Request.PhysicalPath:                         E:\WWW\testweb\default.aspx
Request.RawUrl:                                 /testweb/default.aspx
Request.Url.AbsolutePath:                    /testweb/default.aspx
Request.Url.AbsoluteUri:                      http://www.test.com/testweb/default.aspx
Request.Url.Host:                                www.test.com
Request.Url.LocalPath:                        /testweb/default.aspx

當url中帶參數時可以使用:
HttpContext.Current.Request.Url.PathAndQuery.ToString()//

本頁地址:   Request.URL;  
上頁地址:   
Request.UrlReferrer   
Request.ServerViables["http_referer"]   
Request.RawUrl   
Request.RawUrl.QueryAndPath   
System.IO.Path.GetFileName(Request.FilePath.ToString())  
HttpRequest 類型公開了以下成員。 

構造函數 
名稱 說明 
HttpRequest 基礎結構。初始化 HttpRequest 對象。 
頁首 
方法 
名稱 說明 
BinaryRead 執行對當前輸入流進行指定字節數的二進制讀取。 
Equals 確定指定的 Object 是否等於當前的 Object。 (繼承自 Object。) 
Finalize 允許 Object 在“垃圾回收”回收 Object 之前嘗試釋放資源並執行其他清理操作。 (繼承自 Object。) 
GetHashCode 用作特定類型的哈希函數。 (繼承自 Object。) 
GetType 獲取當前實例的 Type。 (繼承自 Object。) 
MapImageCoordinates 將傳入圖像字段窗體參數映射爲適當的 x 座標值和 y 座標值。 
MapPath 已重載。 爲當前請求將請求的 URL 中的虛擬路徑映射到服務器上的物理路徑。 
MemberwiseClone 創建當前 Object 的淺表副本。 (繼承自 Object。) 
SaveAs 將 HTTP 請求保存到磁盤。 
ToString 返回表示當前 Object 的 String。 (繼承自 Object。) 
ValidateInput 對通過 Cookies 、Form 和 QueryString 屬性訪問的集合進行驗證。 
頁首 
屬性 
名稱 說明 
AcceptTypes 獲取客戶端支持的 MIME 接受類型的字符串數組。 
AnonymousID 獲取該用戶的匿名標識符(如果存在)。 
ApplicationPath 獲取服務器上 ASP.NET 應用程序的虛擬應用程序根路徑。 
AppRelativeCurrentExecutionFilePath 獲取應用程序根的虛擬路徑,並通過對應用程序根使用波形符 (~) 表示法(例如,以“~/page.aspx”的形式)使該路徑成爲相對路徑。 
Browser 獲取或設置有關正在請求的客戶端的瀏覽器功能的信息。 
ClientCertificate 獲取當前請求的客戶端安全證書。 
ContentEncoding 獲取或設置實體主體的字符集。 
ContentLength 指定客戶端發送的內容長度(以字節計)。 
ContentType 獲取或設置傳入請求的 MIME 內容類型。 
Cookies 獲取客戶端發送的 Cookie 的集合。 
CurrentExecutionFilePath 獲取當前請求的虛擬路徑。 
FilePath 獲取當前請求的虛擬路徑。 
Files 獲取採用多部分 MIME 格式的由客戶端上載的文件的集合。 
Filter 獲取或設置在讀取當前輸入流時要使用的篩選器。 
Form 獲取窗體變量集合。 
Headers 獲取 HTTP 頭集合。 
HttpMethod 獲取客戶端使用的 HTTP 數據傳輸方法(如 GET、POST 或 HEAD)。 
InputStream 獲取傳入的 HTTP 實體主體的內容。 
IsAuthenticated 獲取一個值,該值指示是否驗證了請求。 
IsLocal 獲取一個值,該值指示該請求是否來自本地計算機。 
IsSecureConnection 獲取一個值,該值指示 HTTP 連接是否使用安全套接字(即 HTTPS)。 
Item 從 Cookies、Form、QueryString 或 ServerVariables 集合中獲取指定的對象。 
LogonUserIdentity 獲取當前用戶的 WindowsIdentity 類型。 
Params 獲取 QueryString、Form、ServerVariables 和 Cookies 項的組合集合。 
Path 獲取當前請求的虛擬路徑。 
PathInfo 獲取具有 URL 擴展名的資源的附加路徑信息。 
PhysicalApplicationPath 獲取當前正在執行的服務器應用程序的根目錄的物理文件系統路徑。 
PhysicalPath 獲取與請求的 URL 相對應的物理文件系統路徑。 
QueryString 獲取 HTTP 查詢字符串變量集合。 
RawUrl 獲取當前請求的原始 URL。 
RequestType 獲取或設置客戶端使用的 HTTP 數據傳輸方法(GET 或 POST)。 
ServerVariables 獲取 Web 服務器變量的集合。 
TotalBytes 獲取當前輸入流中的字節數。 
Url 獲取有關當前請求的 URL 的信息。 
UrlReferrer 獲取有關客戶端上次請求的 URL 的信息,該請求鏈接到當前的 URL。 
UserAgent 獲取客戶端瀏覽器的原始用戶代理信息。 
UserHostAddress 獲取遠程客戶端的 IP 主機地址。 
UserHostName 獲取遠程客戶端的 DNS 名稱。 
UserLanguages 獲取客戶端語言首選項的排序字符串數組。
1.Request.ApplicationPath->當前應用的目錄 
樓主沒有接觸過jsp吧,如果接觸過jsp就會非常清楚,ApplicationPath指的是當前的application(應用程序)的目錄 
對應的--例如我的服務器上有兩個web應用域名都是MySite.com 一個映射到目錄MySite.com/1/ 另一個影射到 http://MySite.com/2/ 
那麼 MySite.com/1/就是第一個應用的ApplicationPath 同理 MySite.com/2/就是第二個應用的ApplicationPath 

2.Request.FilePath->對應於iis的虛擬目錄 
如 URL http://MySite.com/1/index.html/pathinfo 
FilePath = /1/index.html 

3.Request.Path->當前請求的虛擬路徑 
Path 是 FilePath 和 PathInfo 尾部的串聯。例如 URL http://MySite.com/1/index.html/pathinfo 
那麼Path = /1/index.html/pathinfo 

4.Request.MapPath(string url)->將url映射爲iis上的虛擬目錄 
這個目錄都是相對於application的根目錄的 
於Server.MapPath相比,不會包含類似c:/這樣的路徑 
可以理解爲是相對路徑(對比的Server.MapPath就是絕對路徑) 

5.Server.MapPath(string url)->將url映射爲服務器上的物理路徑 
例如 http://MySite.com/1/index.html 假設你的應用程序在c:/iis/MySite中 
那麼 就是 c:/iis/MySite/1/index.html
Requst.FilePath獲取當前請求的虛擬路徑。FilePath 屬性不包含 PathInfo 尾部。例如,對於 URL http://www.contoso.com/virdir/page.html/tail,FilePath 值爲 /virdir/page.html。 

===============================================================================================================

Request.Path 獲取當前請求的虛擬路徑。Path 是 FilePath 和 PathInfo 尾部的串聯。例如,對於 URL http://www.contoso.com/virdir/page.html/tail,Path 爲 /virdir/page.html/tail。 

===============================================================================================================

Request.MapPath 方法將指定的虛擬路徑映射到物理路徑。 
下面的代碼示例使用 MapPath 方法將虛擬路徑轉換爲服務器上完全限定的物理路徑。此示例包括兩個部分: 

.aspx 頁映射路徑、讀取文件並顯示讀取操作的結果。 

UpperCaseFilterStream 類,該類將通過它傳遞的所有字符都更改爲大寫。 

示例的第一部分顯示如何使用 MapPath 方法將虛擬路徑轉換爲完全限定的物理路徑。之後,將此物理路徑傳遞給 StreamReader 對象,該對象包含該文件的內容。然後,調用 Write 方法,以在頁面上顯示文件的內容。Filter 屬性用於將篩選器附加到響應流,該響應流使頁面上顯示的文本全部大寫。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章