基于B/S结构的信息管理系统中,一般要比普通的网站有更多的技术要求,比如OA系统等。这些系统往往需要直接对系统文件进行操作,比如文件目录的浏览和增删操作、文件的增删操作等。ASP.NET为程序员们提供了丰富的文件操作接口,根据提供的接口可以高效地实现需求中的功能。
ASP.NET中的文件操作主要应用了System.IO命名空间中的几个类:Directory类、file类、StreamReader类等。我们知道,在进行Web方式的系统文件操作时候,像进行数据库的数据操作一样,在进行文件操作之前,必须确保有必要的文件操作权限。
10.1 目录的操作
10.1.1 目录创建和删除
使用ASP.NET程序来管理文件或目录有多种方法,比如Directory.CreateDirectory,DirectoryInfo.Create等方法来创建一个目录,这里我们使用Directory类的CreateDircetory方法来创建一个目录。
使用Visual Studio.net 2003来创建一个Web 应用程序命名为FilesCon,新建一个窗体,命名为DirCon_Sample1.aspx,并添加两个Button控件。DirCon_Sample1.aspx主要HTML代码如下:
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:Button id="Button1"
runat="server"
Text="新建Testfolder目录"
Width="120px" Height="32px">
</asp:Button>
<asp:Button id="Button2"
runat="server"
Text="删除Testfolder目录"
Width="113px" Height="32px">
</asp:Button>
</FONT>
</form>
DirCon_Sample1.aspx.vb中的逻辑代码如下:
'-------code begin-----
Imports System.IO
Imports System.IO.Directory
Imports System.Web.UI
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
'此处省略了窗体设计器生成的代码
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
End Sub
'新建目录过程
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'声明Directory类
Dim dircre As System.IO.Directory
'声明文件目录的路径,改路径为物理绝对路径
Dim dir As String = Server.MapPath(".") + "\Testfolder\"
Try
'判断该文件目录是否存在
If Not dircre.Exists(dir) Then
'利用Directory类的CreateDirectory方法创建该目录
dircre.CreateDirectory(dir)
'弹出对话框,提示创建成功!
Response.Write("<script> alert('Testfolder目录已经成功创建!');</script>")
Else
Response.Write("<script> alert('Testfolder目录已经存在!');</script>")
End If
Catch ex As Exception
Response.Write("程序执行出,信息描述如下:<br>" & ex.Message)
End Try
End Sub
'删除目录过程
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'声明Directory类
Dim dircre As System.IO.Directory
'声明文件目录的路径,改路径为物理绝对路径
Dim dir As String = Server.MapPath(".") + "\Testfolder\"
Try
'判断该文件目录是否存在
If dircre.Exists(dir) Then
'利用Directory类的CreateDirectory方法删除该目录
' Directory类的Delete方法只能删除空目录,当该目录内有文件时,删除就会出错!
dircre.Delete(dir)
' dircre.CreateDirectory(dir)
'弹出对话框,提示创建成功!
Response.Write("<script> alert('Testfolder目录已经成功删除!');</script>")
Else
Response.Write("<script> alert('Testfolder目录不存在!');</script>")
End If
Catch ex As Exception
Response.Write("程序执行出,信息描述如下:<br>" & ex.Message)
End Try
End Sub
End Class
'-------code end-----
保存编译后,DirCon_Sample1.aspx的运行结果如图10.1所示。
图10.1
在单击按钮【新建Testfolder目录】后,在FilesCon目录下,就会新建一个名为“Testfolder”的目录,单击按钮【删除Testfolder目录】后,如果“Testfolder”不为空的情况下,就可以实现对该目录的删除。