210 likes | 364 Views
第 6 章 ASP 的文件处理. 重点内容: FileSystemObject 对象 TextStream 对象 File 对象及 Files 集合 Folder 对象及 Folders 集合 Drive 对象及 Drives 集合. 一、 FileSystemObject 对象.
E N D
第6章 ASP的文件处理 • 重点内容: • FileSystemObject对象 • TextStream对象 • File对象及Files集合 • Folder对象及Folders集合 • Drive对象及Drives集合
一、FileSystemObject对象 FileSystemObject对象允许访问服务器的文件系统,可以使用该对象访问本地或网络服务器上的驱动器文件夹及文件名,从而在服务器上的所有驱动器中读取或操作信息。FileSystemObject对象与TextStream对象存在着很大的内在联系。如果要访问服务器上文件的内容,则必须同时使用这两个对象。TextStream对象可以通过引用系统中的任何文件来创建,通过该对象可以对参考文件进行读或写的操作,这些文件可以是ASCII或Unicode格式的文件。 FileSystemObject对象注册的组件名为:Scripting.FileSystemObject 创建实例的格式为: <% Set fso=server.createobject("Scripting.FileSystemObject") %>
一、FileSystemObject对象 1、FileSystemObject对象的属性 FileSystemObject对象只有一个属性,即Drives属性。该属性返回的值是一个关于当前服务器硬盘上所有驱动器的集合。引用属性的一般方法是: Set ds=fso.Drives 其中,fso应该是一个正确的FileSystemObject对象的实例,而ds变量则返回了一个关于服务器上所有驱动器的Drives数据集合,而不是一般的变量,因此定义该变量像定义一个对象的实例一样,需要关键字Set。 <% dim fso,ds Set fso=Server.CreateObject("Scripting.FileSystemObject") '创建对象实例 Set ds=fso.Drives '使用其属性 For Each Drive in ds '循环 Response.Write("本机驱动器: " & Drive.DriveLetter & "<br>") '此处用到了Drive对象的DriveLetter属性,意为显示驱动器的符号 Next %>
一、FileSystemObject对象 2、FileSystemObject对象的方法 FileSystemObject提供了一系列的方法对文件(File)、文件夹(Folder)、驱动器(Drive)等对象进行操作,同时也提供了两种与TextStream对象一起使用的方法:CreateTextFile 和OpenTextFile。
二、TextStream对象 TextStream对象提供了一系列的属性和方法来对文本文件进行存取等基本操作。在打开或创建了文本文件后,就得到一个TextStream对象,在此对象中有一个“指针”的概念。 当用TextStream对象打开一个文本文件时,便得到一个TextStream对象的实例,不妨称为TX。这个对象的实例指向此文本文件的开始。现在,使用这个实例来读取文件或往文件中写入信息,在写时可以逐行写,也可以只写几个字符。那么此时TX就不再指向文件的开始,而是指向刚写入的一行字(或字符)之后。同样地在读取时,若读取一行,则TX便指向刚读取完的这行或者这几个字符之后的位置。这与程序语言中所定义的文件指针概念类似,因此也称这样的TextStream对象为文件指针。 不能通过CreatObject来创建一个TextStream对象,得到TextStream对象的惟一方法是如前所述的用FileSystemObject对象打开一个存在的文本文件或者创建一个新的文件。
二、TextStream对象 1、TextStream对象的属性 TextStream对象提供的属性及其表示的意义见表:
二、TextStream对象 2、TextStream对象的方法 TextStream对象提供的操作文件的方法及意义见表:
三、File对象及Files集合 File对象指向某个特定的文件,并为该文件提供一系列处理的属性和方法。创建一个File对象的实例有以下两种方法。 (1) 通过FileSystemObject对象的GetFile方法创建File对象的实例。其语法格式为: Set 变量名=fso.GetFile("文件名") (2) 通过Files数据集合的Item属性来创建Folder对象的实例。其语法格式为: Set 变量名=MF.Item("文件名") 参数“MF”为File对象的实例。 参数“文件名”代表将要指向的文件的路径及文件名称。 这两种方法创建的File对象的实例完全等价,都可以通过File对象提供的属性和方法来查看文件的属性信息或者对文件进行操作。
三、File对象及Files集合 1、File对象的属性 File对象提供了很多有关文件的属性,这些属性描述了一个特定文件的很多有用信息,见表:
三、File对象及Files集合 2、File对象的方法 File对象提供了4种操作文件的方法,用来完成一个文件的复制(Copy)、删除(Delete)、移动(Move)和打开(OpenAsTextStream)的操作。这些方法与FileSystemObject对象提供的有关方法十分相似。 (1) Copy:把File对象指向的文件复制到另一个地址。 (2) Delete:把File对象指向的文件删除。 (3) Move:把File对象指向的文件移动到另外一个地址。 (4) OpenAsTextStream:以纯文本格式打开一个文件,并返回一个指向该文件的TextStream对象的实例。
三、File对象及Files集合 3、Files集合 Files集合是一个文件夹或根目录下所有文件对象File的集合。创建一个Files集合对象的实例是通过Folder对象的Files属性来完成的,该集合中包含的每个File对象对应目录下的一个文件。其语句格式为: Set 变量名=MF.Files MF是一个Folder对象的实例,上面这条语句创建了一个包含MF指向的文件夹下的所有文件的一个集合。 Files集合有以下两个属性。 (1) Count属性:返回文件夹中文件的数据。 (2) Item属性:返回一个File对象。
四、Folder对象及Folders集合 Folder对象提供了针对某一个特定的文件夹进行处理的方法和显示其文件夹信息的一系列属性。结合FileSystemObject对象的GetFolder方法,创建一个Folder对象的实例可以有以下两种方法。 (1) 通过FileSystemObject对象的GetFolder方法创建Folder对象的实例。其语法格式为: Set 变量名=fso.GetFolder("文件夹") (2) 通过Folders数据集合的Item属性来创建Folder对象的实例。 Set变量名=mfs.Item("文件夹") 参数“mfs”为Folder对象的实例。 参数“文件夹”代表所要指向的文件夹的路径。 这两种方法创建出来的Folder对象的实例其本质是相同的,属性、方法及用法都是完全相同的。
四、Folder对象及Folders集合 1、Folder对象的属性 Folder对象的属性描述了某个文件夹的众多属性信息,见表 :
四、Folder对象及Folders集合 2、Folder对象的方法 Folder对象有一些方法,可以用来对指向的文件夹进行复制(Copy)、删除(Delete)和移动(Move)等操作,它们类似于File对象的相应方法,读者可自行去参考。这里只讲在File对象中没有的CreateTextFile方法。 CreateTextFile方法与FileSystemObject对象的CreateTextFile方法完全相同。CreateTextFile方法在文件夹中建立并打开一个文本文件,然后返回一个与该新文件关联的新的TextStream对象的实例。
四、Folder对象及Folders集合 3、Folders集合 Folders集合是某个文件夹或者驱动器根目录的所有子文件夹的集合。集合中的元素是各个子文件夹对象,而每个子文件夹对象又有可能包括一系列的子文件夹。也就是说每个子文件夹中可能包含有一个Folders集合。简言之,Folders集合包含了一系列的Folder对象,可以使用该集合代表任何文件夹。 Folders集合有以下两个属性。 (1) Count属性:返回Folders集合中文件夹中的数量。 (2) Item属性:返回一个Folders集合中一个命名的Folder对象。 Folders集合只有一种方法:Add。 Add方法用于在Folders集合中建立一个新的文件夹,如果该文件夹已经存在,则将出现一个错误。
五、Drive对象及Drives集合 Drive对象提供了很多访问驱动器属性的信息。它可以代表本地计算机上的一个驱动器,也可以代表一个映射网络驱动器。从前面学习的知识中,可以通过两种方法来创建一个Drive对象的实例,让它指向某个特定的驱动器。 (1) 通过FileSystemObject对象的GetDrive方法创建Drive对象的实例。其语法格式为: Set 变量名=fso.GetDrive("驱动器的名字") (2) 通过Drives集合的Item属性来创建Drive对象的实例。其语法格式为: Set 变量名=df.Item("驱动器的名字") 参数“df”为Drive对象的实例。 这两种方法创建出来的Drive对象的实例其实质是完全相同的,两者都提供了获取驱动器信息的一系列属性。
五、Drive对象及Drives集合 1、Drive对象的属性 通过Drive对象提供的属性,可以访问Drive对象的有关信息。
五、Drive对象及Drives集合 2、Drives集合 Drives集合代表了本地计算机或映射的网络驱动器中所有可用驱动器的集合。该集合可以通过FileSystemObject对象的Drives属性创建。 Drives集合有以下两个属性。 (1) Count属性:表示Drives数据集合中包含的驱动器的个数,即服务器上可用驱动器的个数。 (2) Item属性:用来引用特定的某一个驱动器,以生成一个驱动器对象(Drive对象),然后通过这个驱动器对象来对特定的驱动器进行一系列操作。
六、综合实例:访客留言簿 首先产生一个表单,收集用户数据,然后把收集的数据保存在一个文本文件中,通过读取该文本文件中的内容,以显示出用户的留言内容。 <% set fs=server.createobject("scripting.filesystemobject") '以追加方式打开c:\abc\lyb.txt文件,若此文件不存在,则创建(执行后,则创建了一个TextStream对象) set a=fs.opentextfile("c:\abc\lyb.txt",8,true) '接收文本框t1数据,并以一行形式写入到lyb.txt文件中 a.writeline(request.form("t1")) '关闭TextStream对象 a.close %> <html> <head> <title>给我留言</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <p> </p> <p align="center"><font color="#0000FF" size="+4" face="华文彩云">真 情 留 言</font></p> <hr> <%
六、综合实例:访客留言簿 set fs=server.createobject("scripting.filesystemobject") set a=fs.opentextfile("c:\abc\lyb.txt") while not a.atendofstream '判断指针是否已到达文件尾 response.write(a.readline & "<p>") '读取lyb.txt文件中一行的数据 wend a.close %> <hr> <!-- 以下将产生一个表单,并指定处理文件为自身 --> <form name="form1" method="post" action="index.asp"> <div align="center"> <p> <textarea name="t1" cols="60" rows="5"></textarea> </p> <p align="center"> <font size="4" face="华文行楷">请签写您的意见,我们将认真对待,谢谢!</font><input type="submit" name="Submit" value="提交"> </p> </div> </form> <p> </p> <p align="center"> </p> </body> </html>