最新的Web开发教程
 

ASP.NET网页 - 文件夹


本章是有关文件夹和文件夹路径。


在本章中,您将了解到:

  • 关于逻辑和物理文件夹结构
  • 关于虚拟和物理名称
  • 关于网页的URL和路径

逻辑文件夹结构

下面是一个ASP.NET网页的网站一个典型的文件夹结构:

文件夹
  • "Account"文件夹中包含登录和安全性文件
  • "App_Data"文件夹包含数据库和数据文件
  • "Images"文件夹中包含图片
  • "Scripts"文件夹中包含浏览器脚本
  • "Shared"文件夹中包含的公共文件(like layout and style files)

物理文件夹结构

对于物理结构"Images"文件夹在上面的网站看起来可能是这样的计算机上:

C:\约翰尼\文档\ MyWebSites \演示\图片


虚拟和物理名称

从上面的例子中:

网络图片的虚拟名称可能是"Images/pic31.jpg"

但物理名称是"C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"


URL和路径

网址是从网络访问文件: http://www.w3ii.com/html/html5_intro.asp

该URL对应的服务器上的物理文件:C:\ MyWebSites \ w3ii \ HTML \ html5_intro.asp

虚拟路径的简写表示物理路径。 如果您使用的虚拟路径,您可以将您的网页不同的域(or server)而无需更新的路径。

网址 http://www.w3ii.com/html/html5_intro.asp
服务器名称 w3ii
虚拟路径 /html/html5_intro.asp
物理路径 C:\ MyWebSites \ w3ii \ HTML \ html5_intro.asp

磁盘驱动器的根上是这样写C:\,但在一个网站的根目录是/ (forward slash)

网络文件夹的虚拟路径是(almost)从来相同的物理文件夹。

在你的代码会,表示这两个物理路径和虚拟路径,这取决于你是什么样的编码。

ASP.NET具有与文件夹路径工作3个工具:〜运营商,该方法使用Server.Mappath和HREF方法。


操作符〜

要指定编程代码的虚拟根目录,使用〜运算符。

如果使用〜运算符,而不是一个路径,您可以将您的网站到另一个文件夹或位置不改变任何代码:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";


该方法使用Server.Mappath

该方法使用Server.Mappath转换的虚拟路径(/default.cshtml)到服务器可以理解的物理路径(C:\Johnny\MyWebSited\Demo\default.cshtml)

当你需要打开位于服务器上(数据文件只能有一个完整的物理路径访问)的数据文件,将使用此方法:

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

你会学到更多关于读取(and writing to)在本教程的下一章中的数据文件在服务器上。


在href方法

中的HREF方法转换代码中使用的路径的路径在浏览器可以理解(the browser cannot understand the ~ operator)

您可以使用HREF方法来创建路径,如图片文件和CSS文件的资源。

你会经常在HTML <A>,<IMG>,并使用此方法<link>元素:

@{var myStyleSheet = "~/Shared/Site.css";}

<!-- This creates a link to the CSS file. -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />

<!-- Same as : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

中的HREF方法是网页对象的方法。