asp.net中Server.MapPath的使用
Server.MapPath方法作用
MapPath方法用來返回與Web服務器上的指定虛擬路徑相對應的物理文件路徑。
語法
Server.MapPath(path);
參數
path表示Web服務器上的虛擬路徑,如果path值為空,則該方法返回包含當前應用程序的完整物理路徑。
註意事項
Server.MapPath()有時在程序調試時會提示“當前上下文中不存在名稱“Server””錯誤,從而不支持函數Server.MapPath()的使用。盡管引用了命名空間“using System.Web;”也是無濟於事,此時就需要使用其全名,或者是當前使用Server.MapPath()函數的類繼承自System.Web.UI.Page。
Server.MapPath()應用
假設當前的網站目錄為E:\wwwroot 應用程序虛擬目錄為E:\wwwroot\company 瀏覽的頁面路徑為E:\wwwroot\company\news\ 下面的一個 aspx頁面。
在該頁面中使用
Server.MapPath("") :返回當前頁面所在的物理文件路徑:E:\wwwroot\company\news
Server.MapPath("/") :返回應用程序根目錄所在的物理文件路徑:E:\wwwroot
Server.MapPath("./") :返回當前頁面所在的物理文件路徑:E:\wwwroot\company\news
Server.MapPath("../"):返回當前頁面所在的上一級的物理文件路徑:E:\wwwroot\company
Server.MapPath("~/"):返回應用程序的虛擬目錄(路徑):E:\wwwroot\company
Server.MapPath("~"):返回應用程序的虛擬目錄(路徑):E:\wwwroot\company
ASP.NET中Server.MapPath() 和 Request.MapPath()使用區別:
Server.MapPath(string) :是將相對於當前調用文件的文件(或目錄)映射為物理路徑;
Request.MapPath(string) :是將string虛擬路徑映射為物理路徑(asp中Request無此方法)
Server.MapPath(string) 中string 可以用“../”方式引用父目錄,甚至可以將此目錄跳到整個WEB目錄外,如:C:\WWWROOT
目錄為WEB根目錄,在根目錄文件中調用此Server.MapPath("../腳本文件"),則可以調用WEB目錄外的腳本、資源等。
Request.MapPath(string) 中的string為虛擬目錄,只能相對WEB虛擬目錄形式的,也不允許"../"方式調用,只能是"/","/xx"等字符串
asp.net中Server.MapPath的使用