一种程序设计语言,对文件处理的能力的大小往往也是一种语言功能大小的一种表现。在ASP.NET中,对于文件的处理主要是通过.Net FrameWork SDK中的一个System.IO的名称空间来实现了,在System.IO名称空间中定义了许多关于文件处理的类(class)、方法和属性,这些类、方法和属性使得在很容易在ASP.NET中进行文件处理。由于在此名称空间中有定义了许多类、方法和属性,而这些不可能通过本文来一一介绍。本文主要结合例子来具体介绍对于文件处理的基本操作。
文件基本操作也就是我们平常经常用到的。具体说就是对文件的读、写、拷贝、移动、删除。下面就这几个操作来具体介绍一下。
一. 程序设计及运行环境
Windows 2000 专业版本、.Net FrameWork SDK 测试第二版( Beta 2)
二. 通过ASP.NET页面进行文件的读操作
本程序的运行界面及运行结果如下图所示:
![]() 图1:程序的运行界面 |
![]() 图2:程序的运行结果界面 |
1).程序设计中的主要思路及步骤:
本ASP.NET页面中采用的程序语言是VB.NET。程序主要功能是打开指定文件并把文件以ASCII码的形式显示出来。下面是程序设计中的一些主要步骤:
i>.读取文件中用到的对象--StreamReader
在System.IO中定义了一个读取文件的对象--StreamReader,本程序就是通过这个对象完成对文件的读取。然后以文本形式显示出来。具体如下:
| Dim streamreaderobj As StreamReader file_name = filename.PostedFile.FileName ' 读出一个指定文件,并把他指派给streamreader对象 Do filecont = streamreaderobj.ReadLine () Response.Write( filecont & " <br> " ) Loop Until filecont = "" ' 一行一行读出文件内容,知道读到一行内容为空字符串的时候,才停止 streamreaderobj.Close ' 在读操作完成以后,关闭StreamReader对象 |
ii>在程序中所用到的Form的编码应该是"Multipart/Form-Data",不用他的缺省编码。具体如下:
| <form Method = "Post" EncType = "Multipart/Form-Data" runat = "server" > </form > |
2).程序的源代码:
| <% @ Import Namespace = "System.IO" %> <script language = "vb" runat = "server" > Sub SendButton_Click ( sender as Object , e as EventArgs ) ' 创建一个StreamReader对象 Dim streamreaderobj As StreamReader Dim file_name as String ' 定义一个变量来保存从文件中读出的内容 Dim filecont As String streamreaderobj = File.OpenText ( file_name ) panel1.visible = false ' 一行一行读出文件内容,知道读到一行内容为空字符串的时候,才停止 Do filecont = streamreaderobj.ReadLine () ' 利用StreamReader对象读取文件 Response.Write( filecont & " <br> " ) ' 显示文件内容 Loop Until filecont = "" ' 在读操作完成以后,关闭StreamReader对象 streamreaderobj.Close Response.write ( " <br> 以上就是" & file_name & "文件的全部内容! " ) End Sub </script> <asp:panel id = "panel1" runat = "server" > <form Method = "Post" EncType = "Multipart/Form-Data" runat = "server" > <p>欢迎在ASP.NET页面对文件进行读操作</p > 请选择文件名称:<input type = "file" id = "filename" runat = "server" /> <br > <asp:button id = "Write" Text = "读文件" OnClick = "SendButton_Click" runat = "server" /> </form > </asp:panel > |
三.ASP.NET页面进行文件写操作:
本程序的运行界面如下图所示:
![]() 图3:程序运行界面 |
1).程序设计中的主要思路及步骤:
本ASP.NET页面中采用的程序语言是VB.NET。程序主要功能是建立一个文本形式的文件,这个文件名是可以让使用者自行定义的,然后把使用者填入的内容保存在此文件中。下面是程序设计的主要步骤:
i>.读取文件中用到的对象--StreamWriter
StreamWriter也是由名称空间--System.IO中定义的,主要用来写入文件内容。本程序中也通过他来完成文件写操作的。对文件的写操作相比较文件的读操作来说较简单。具体的步骤如下:
| Dim strwriterobj As StreamWriter Dim contxt as String file_name = filename.text contxt = body.text ' 其中body.text是要写入文件的内容 strwriterobj = File.CreateText ( file_name ) ' 创建一个文件,并把此文本文件作为对象分派给 streamwriter对象 strwriterobj.WriteLine( contxt ) ' 把文本内容写入文件中 strwriterobj.Close '关闭对象 |
ii>.上面主要完成的是对建立一个新文件,并写入内容。此时要写入的文件如果已经存在,程序就会清空原文件,然后再写入新内容。如果你所要完成的工作是对于已经存在的文件只是在文件尾部添加内容,对于不存在的文件才建立和追加内容。用以下语句替换,就可以了。
被替换语句:
| strwriterobj = File.CreateText ( file_name ) |
替换成语句:
| strwriterobj = File.AppendText ( file_name ) |
2).程序源代码
| <% @ Import Namespace = "System.IO" %> <script language = "vb" runat = "server" > Sub SendButton_Click ( sender as Object, e as EventArgs ) ' 定义一个 streamwriter 对象 Dim strwriterobj As StreamWriter Dim file_name as String Dim contxt as String ' 创建一个文件,并把此文本文件作为对象分派给 streamwriter对象 file_name = filename.text contxt = body.text strwriterobj = File.CreateText ( file_name ) ' 把文本内容写入文件中 strwriterobj.WriteLine( contxt ) '关闭对象 strwriterobj.Close Response.write ( "成功的进行了文件写操作!" ) panel1.visible = false End Sub </script> <asp:panel id="panel1" runat="server" > <form id="form1" runat="server" > <p>欢迎在ASP.NET页面对文件进行写操作</p > 请填入文件名称:<asp:textbox id = "filename" size = "40" runat = "server" /><br > 请填入写入内容:<asp:textbox id = "Body" TextMode = "MultiLine" Columns = "40" Rows = "10" runat = "server" /><br > <asp:button runat = "server" id = "Write" Text = "写入文件" OnClick = "SendButton_Click" /> </form > </asp:panel > |
四.在ASP.NET页面中完成文件的拷贝、移动和删除操作
在ASP.NET中完成文件的拷贝、移动和删除操作就更简单了。这是因为在名称空间System.IO中就定义了对文件进行拷贝和移动的方法。直接调用这些方法就可以完成以上操作。下面给出文件拷贝、移动和删除例子。
1).文件拷贝操作
| <% @ Import Namespace = "System.IO" %> <% ' 下面语句完成文件拷贝工作 File.copy ( "c:\sample.txt" , "c:\temp.txt" ) Response.write ( "文件的拷贝工作已经成功完成!" ) %> 2).文件移动操作 <% @ Import Namespace = "System.IO" %> <% ' 下面语句完成文件移动工作 File.move ( "c:\sample.txt" , "d:\sample.txt" ) Response.write ( "文件的移动工作已经成功完成!" ) %> 3).文件删除操作 <% @ Import Namespace = "System.IO" %> <% ' 下面语句完成文件删除工作 File.delete ( "c:\sample.txt" ) Response.write( "文件的删除工作已经成功完成!" ) %> |
五.总结:
要想灵活的运用ASP.NET,充分感.NET的强大功能,实现我们看似很难完成工作,就必须掌握微软公司为.Net框架开发的.Net FrameWork SDK。也只有掌握了.Net FrameWork SDK中的内容,你也才可以。




