ASP.NET是微软.NET宏大战略的一部分。我们不能仅仅将它看成是ASP语言的进化版本,它所能发挥的威力将使开发人员激动与惊喜,更快、更好地实现梦想!本文就介绍ASP.NET的几个常用实例,通过与ASP语言实现方式的对比,让我们对它的强大眼见为实!实例内容(包括下载代码)如下:
● 在ASP.NET中实现目录浏览
● 在ASP.NET中随意创建图形信息
● 在ASP.NET中显示事件日志记录
要运行这些例程,需要在Web服务器上安装Microsoft .NET Framework SDK。要理解代码的含义,需要对C# 编程语言有一定程度的了解。
在ASP.NET中实现目录浏览
在用ASP语言编程的"美好旧时光"中,我们应该不会忘记FileSystemObject对象。它允许对文件系统进行读、写以及目录浏览。但是这个对象模型并不十分完善,比如对于二进制文件来说,还没有开始操作就已经到达范围的结尾了。另外,还有一些希望的函数和属性在ASP中也没有具备。
但是出现了ASP.NET,这些愿望就都能在System.IO 名称空间中被 .NET Framework 类所实现。你会发现,文件处理从没有这么容易过,而且最重要的是从没有这么强大过。
这里,我们将演示文件处理的一个部分:文件和目录列表。我们创建了一些脚本程序,你可以将其应用在自己的应用程序中。
列举驱动器
首先,我们要知道在计算机上有哪些可浏览的驱动器,这些代码保存在文件listdrives.aspx中:
<% @Page Language="C#" %>
<% @Import Namespace="System.IO" %>
<%
string[] achDrives = Directory.GetLogicalDrives();
int nNumOfDrives = achDrives.Length;
Response.Write("<ul>");
for (int i=0; i < nNumOfDrives; i++)
{
Response.Write("<li><a href=\"listdir.aspx?dir=");
Response.Write(Server.UrlEncode(achDrives[i]));
Response.Write("\">" + achDrives[i]);
Response.Write("</a><br>");
}
Response.Write("</ul>");
%>
根据 @Import 名称空间标识,在System.IO 名空间中有一个类叫做Directory,它包含了一些可用于目录上的功能。这个类中还包含静态(不需要对象例示就能调用的)方法GetLogicalDrives,它提供了包含驱动器字母的一个字符串数列。
当然,不能只有一个从GetLogicalDrives 获取的驱动器简单列表,还需要增加了一个页面,在这个页面中提供有关驱动器根目录的信息。
列出目录和文件
有了目录,我们就可以进一步探索子目录、文件以及目录本身的属性(如创建的日期等)了。文件 listdir.aspx 演示了如何执行这些功能:
<% @Page Language="C#" %>
<% @Import Namespace="System.IO" %>
<%
string strDir2List = Request.QueryString.Get("dir");
Directory thisOne = null;
try
{
thisOne = new Directory(strDir2List);
// Reading the directory properties
Response.Write("<p>Creation: " +
thisOne.CreationTime.ToString() + "</p>");
Directory[] subDirectories = thisOne.GetDirectories();
Response.Write("<ul>");
for (int i=0; i < subDirectories.Length; i++)
{
Response.Write("<li><a href=\"listdir.aspx?dir=");
Response.Write(Server.UrlEncode(subDirectories[i].FullName));
Response.Write("\">" + subDirectories[i].Name);
Response.Write("</a><br>");
}
Response.Write("</ul>");
File[] theFiles = thisOne.GetFiles();
Response.Write("<ul>");
for (int i=0; i < theFiles.Length; i++)
{
Response.Write("<li><a href=\"showfile.aspx?file=");
Response.Write(Server.UrlEncode(theFiles[i].FullName));
Response.Write("\">" + theFiles[i].Name);