ASP.NET Web Pages - 文件夾
本章介紹文件夾和文件夾路徑。
在本章中,您將學(xué)到:
- 邏輯和物理文件夾結(jié)構(gòu)
- 虛擬和物理名稱
- web URL 和路徑
邏輯文件夾結(jié)構(gòu)
下面是 ASP.NET 網(wǎng)頁的典型文件夾結(jié)構(gòu):

- "Account" 文件夾包含登錄和安全文件
- "App_Data" 文件包含數(shù)據(jù)庫和數(shù)據(jù)文件
- "Images" 文件夾包含圖片
- "Scripts" 文件夾包含瀏覽器腳本
- "Shared" 文件夾包含通用文件(比如布局和樣式文件)
物理文件結(jié)構(gòu)
上面這個網(wǎng)站的 "Images" 文件夾的物理結(jié)構(gòu)在計算機(jī)上類似這樣:
C:\Johnny\Documents\MyWebSites\Demo\Images
虛擬和物理名稱
根據(jù)上面的例子:
web 圖片的虛擬名稱類似這樣:"Images/pic31.jpg"。
但是物理名稱類似這樣 "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"。
URL 和路徑
URL 用于從 web 訪問文件:
http://chabaoo.cn/html5/html5_intro.asp
URL 在服務(wù)器上對應(yīng)的文件是:
C:\MyWebSites\htm5\html5_intro.asp
虛擬路徑是代表物理路徑的簡寫形式。如果您使用虛擬路徑,就能夠在不更新路徑的情況下將網(wǎng)頁移動到不同的域名(或服務(wù)器)。
URL http://chabaoo.cn/html/html5_intro.asp 服務(wù)器名 w3school 虛擬路徑 /html/html5_intro.asp 物理路徑 C:\MyWebSites\w3school\/html/html5_intro.asp
磁盤驅(qū)動器上的根目錄寫作: C:\,但是網(wǎng)站上的根目錄是 /(斜杠)。
web 文件夾的虛擬路徑(幾乎)永遠(yuǎn)不會與物理文件夾相同。
在您的代碼中,根據(jù)代碼內(nèi)容的不同,可能會同時引用物理路徑和虛擬路徑。
ASP.NET 提供三種處理文件夾路徑的工具:~ 操作符、Server.MapPath 方法以及 Href 方法。
~ 操作符
如需在編程代碼中規(guī)定虛擬根目錄,請使用 ~ 操作符。
如果您使用 ~ 操作符,而不是路徑,就能夠在不改變?nèi)魏未a的情況下,將網(wǎng)站移動到不同的文件夾或位置:
var myImagesFolder = "~/images"; var myStyleSheet = "~/styles/StyleSheet.css";
Server.MapPath 方法
Server.MapPath 方法將虛擬路徑 (/default.cshtml) 轉(zhuǎn)換為服務(wù)器能夠理解的物理路徑 (C:\Johnny\MyWebSited\Demo\default.cshtml)。
當(dāng)需要打開位于服務(wù)器上的數(shù)據(jù)文件時,您就會用到該方法(數(shù)據(jù)文件只能通過完整的物理路徑來訪問):
var pathName = "~/dataFile.txt"; var fileName = Server.MapPath(pathName);
在本教程的下一章中,您將學(xué)習(xí)更多有關(guān)在服務(wù)器上讀取和寫入數(shù)據(jù)文件的知識。
Href 方法
Href 方法把代碼中的路徑轉(zhuǎn)換為瀏覽器能夠理解的路徑(瀏覽器無法理解 ~ 操作符)。
您使用 Href 方法來創(chuàng)建指向資源(比如圖片和 CSS 文件)的路徑。
您會經(jīng)常在 HTML <a>、<img> 以及 <link> 元素中用到該方法:
@{var myStyleSheet = "~/Shared/Site.css";} <!-- 創(chuàng)建指向 CSS 文件的鏈接 --> <link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" /> <!-- 同上 : --> <link rel="stylesheet" type="text/css" href="/Shared/Site.css" />
Href 方法屬于 WebPage 對象的方法。