| 文件存取组件(File
Access)是ASP的内置组件。通过文件存取组件,可以很方便地对服务器上的文件和文件夹进行操作,这些操作包括文本文件的存取、文件和文件夹的复制、移动和删除等。对于站点的设计与管理人员,掌握这些操作是很重要的。
注意:必须将要操作的文件或文件夹的权限设置为任何人可以完全控制。
文件存取组件所包含的常用对象如表5-2所示。
| 表5-2
文件存取组件的常用对象 |
对象 |
说明 |
| FileSystemObject |
提供对服务器文件系统的访问 |
| TextStream |
存取文本文件 |
| File |
处理文件 |
| Folder |
处理文件夹 |
下面介绍其中最常用的FileSystemObject和TextStream对象。
5.2.1 FileSystemObject对象
FileSystemObject对象用于创建和打开文件以及对文件进行读写操作,可以对文件和文件夹进行创建、复制、移动和删除操作。它是文件存取组件中最重要的对象。其方法见表5-3。
| 表5-3
FileSystemObject对象的方法 |
方法 |
说明 |
| CreatTextFile |
创建文本文件 |
| OpenTextFile |
打开文本文件 |
| GetFile |
获得File对象 |
| CopyFile |
复制文件 |
| MoveFile |
移动文件 |
| DeleteFile |
删除文件 |
| FileExists |
判断文件是否存在 |
| GetFolder |
获得Folder对象 |
| CreateFolder |
创建文件夹 |
| CopyFolder |
复制文件夹 |
| MoveFolder |
移动文件夹 |
| DeleteFolder |
删除文件夹 |
| FolderExists |
判断文件夹是否存在 |
5.2.2
TextStream对象
TextStream对象用于对文件进行读写操作,其方法见表5-4。
| 表5-4
TextStream对象 |
方法 |
说明 |
语法 |
| Close |
关闭一个打开的TextStream文件 |
TextStream对象.Close |
| Read |
从光标的当前位置开始,读取一定的字符数目 |
TextStream对象.Read(Characters) |
| ReadAll |
读取TextStream文件中的所有数据 |
String=TextStream对象.ReadAll |
| ReadLine |
读取文件中的一行数据 |
String=TextStream对象.ReadLine |
| Skip |
读取文件时,跳过指定个数的字符 |
TextStream对象.Skip(Characters) |
| SkipLine |
读取文件时,跳过一行数据 |
TextStream对象.SkipLine |
| Write |
向文件中写入数据 |
TextStream对象.Write(String) |
| WriteLine |
向文件写入一行数据 |
TextStream对象.WriteLine (String) |
| WriteBlankLine |
写入指定个数的新行到文件中 |
TextStream对象.WriteBlankLine (Lines) |
上表中,Characters表示字符数;String表示字符串;Lines表示行数。
TextStream对象的属性见表5-5。
| 表5-5
TextStream对象的属性 |
方法 |
说明 |
语法 |
| AtEndOfLine |
当光标位于当前行的未尾时,值为 True,反之为 Fales |
TextStream对象.AtEndOfLine |
| AtEndOfStream |
当光标位于TextStream文件的未尾时,值为 True,反之为 Fales |
TextStream对象.AtEndOfStream |
| Column |
计算从行首到当前光标位置的字符数目 |
TextStream对象.Column |
| Line |
计算光标所在行在文件中的行号 |
TextStream对象.Line |
5.2.3 实际运用说明
下面通过一些范例,介绍FileSystemObject对象和TextStream对象的具体运用。
要使用某个组件,首先必须在ASP中调用这个组件,我们可以使用组件所提供的对象以及对象的方法和属性来实现。使用ASP中的Server.CreateObject方法可以创建对象的实例,创建对象实例时,必须提供实例的注册名“PROGID”。
利用文件存取组件创建FileSystemObject对象。其语法如下:
Set fso= Server.CreateObject("Scripting.FileSystemObject")
下面介绍FileSystemObject对象的一些常见方法。
CreateTextFile 方法。创建FileSystemObject对象后,可以使用该对象的CreateTextFile 方法创建指定文件并返回一个TextStream对象。语法如下:
Set ts=fso.CreateTextFile (参数)
CreateTextFile方法的常用参数见表5-6。
| 表5-6
CreateTextFile方法的常用参数 |
参数 |
说明 |
| FileName |
指定要创建的文件名及其路径 |
| OverWrite |
创建文件时,如果有同名文件是否能覆盖。布尔值,True为允许,False为不允许,默认为False。可选 |
有了TextStream对象就可以对新创建的文件进行读写操作。
注意:为了说明问题的方便,给FileSystemObject对象取名为fso,TextStream对象取名为ts,本书下面的实例中FileSystemObject对象名均为fso,TextStream对象名均为ts。
范例5-1:创建一个文本文件,并写入一行文字“江西盛达公司”
<%
' 创建一个FileSystemObject对象
Set fso=Server.CreateObject("Scripting.FileSystemObject")
' 创建一个文本文件,获得一个TextStream对象
Set ts= fso.CreateTextFile("C:\Inetpub\wwwroot\Sd-web\sdmessage\sdmessage.txt")
' 向文本文件中写入一行字符
ts.WriteLine("江西盛达公司")
%>
OpenTextFile方法。OpenTextFile方法读取一个文本文件并返回一个TextStream对象。语法如下:
Set ts= fso.OpenTextFile (参数)
OpenTextFile方法的参数见表5-7。
| 表5-7
OpenTextFile方法 |
参数 |
说明 |
| FileName |
要打开的文件名及路径 |
| Iomode |
指定打开文件的方式。1为只读,2为可写并覆盖所有内容,8为可添加。默认为1。可选 |
| Create |
当指定文件不存在,是否创建新文件。布尔值,True为是,False为否,默认为False。可选 |
范例5-2:对已有的文本文件进行读取操作
<%
Set fso=Server.CreateObject("Scripting.FileSystemObject")
' 打开一个文本文件,获得一个TextStream对象
Set ts= fso.OpenTextFile("C:\Inetpub\wwwroot\Sd-web\sdmessage\sdmessage.txt")
Do While Not ts.AtEndOfStream
Response.Write ts.ReadLine & "<br>" ' 读取文本文件中的字符
Loop
%>
范例5-3:对已有的文本文件进行添加操作
<%
Set fso=Server.CreateObject("Scripting.FileSystemObject")
' 8表示文件为可添加方式,True表示如果文件不存在则创建文件
Set ts= fso.OpenTextFile("C:\Inetpub\wwwroot\Sd-web\sdmessage\sdmessage.txt",8,True)
ts.WriteLine("欢迎您") ' 添加内容
%>
利用FileSystemObject对象关于文件与文件夹的方法,例如CopyFile、MoveFile、DeleteFile、CopyFolder、MoveFolder和DeleteFolder等,就可以对文件或文件夹进行复制、移动、删除等操作。
范例5-4:文件的复制
<%
Set fso =Server.CreateObject("Scripting.FileSystemObject")
' 先定义源文件sdmessage1.txt和目标文件sdmessage2.txt,然后复制
Sdmessage1=" C:\Inetpub\wwwroot\Sd-web\sdmessage\sdmessage1.txt
"
sdmessage2=" C:\Inetpub\wwwroot\Sd-web\sdmessage\sdmessage2.txt
"
fso.CopyFile sdmessage1,sdmessage2
%>
范例5-5:计数器
这是一个综合实例,通过计数器,可以记录并显示网站的访问量。本实例包含两个文件,guestnum.asp 为程序文件,guestnum.txt为文本文件,用于记录访问人数,该文件事先写入初始化数字1。
guestnum.asp 程序文件:
<%
dim guestnum ' 定义访问量变量
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set ts= fso.OpenTextFile(server.mappath("guestnum.txt"))
guestnum=ts.readline
response.write "访问量"&guestnum&"人次"
Set ts= fso.Createtextfile(server.mappath("guestnum.txt"),true)
ts.writeline(guestnum+1) ' 浏览者打开网页,访问量加1
' 关闭对象
ts.close
set fso=nothing
%>
本章另一综合实例——简单留言板见第7章第1节。下面介绍广告轮显内置组件。
|