上QQ阅读APP看书,第一时间看更新
1.7.2 文件操作
表1-9列出了文件常用操作方法。
表1-9 文件常用操作方法
1. 创建文本文件
创建文本文件,可以使用FSO对象或Folder对象的CreateTextFile方法,格式如下:
fso.CreateTextFile(文件名,是否覆盖同名文件,是否使用Unicode编码)
后两个参数可以省略,它们默认都为False。该方法返回的是一个TextStream对象,可以通过它对文本文件进行操作,具体使用方法请参见1.7.3节。
下例将在当前目录下创建一个名为FileCreateTest.txt的文件。
FileCreate.asp
<%@codepage=936%> <% Response.Charset = "GBK" '当前目录下的FileCreateTest.txt filePath = Server.MapPath(".") & "\FileCreateTest.txt" Set fso = CreateObject("Scripting.FileSystemObject") '创建文本文件(覆盖同名文件,使用Unicode编码) Set txtFile = fso.CreateTextFile(filePath, True, True) '写入数据,并关闭 txtFile.WriteLine("Hello World.") txtFile.Close Set fso = Nothing %>
如果不使用Unicode编码,则将使用系统默认为编码。如果是英文系统,使用WriteLine写入中文的话,程序将报错。
另外,FSO不支持二进制文件的读写。
2. 复制文件、移动文件和删除文件
文件的复制、移动和删除与文件夹的操作是极其类似的,只是方法名和路径写法不同,所以不赘述,直接举例说明。
FileCopyMoveDelete.asp
<%@codepage=936%> <% Response.Charset = "GBK" '当前目录下的FileTest.txt filePathA = Server.MapPath(".") & "\FileTest.txt" filePathB = Server.MapPath(".") & "\FileTest2.txt" filePathC = Server.MapPath(".") & "\FileTest3.txt" Set fso = CreateObject("Scripting.FileSystemObject") '将FileTest.txt复制为FileTest2.txt fso.CopyFile filePathA, filePathB, True '覆盖同名文件 '将FileTest2.txt改名为FileTest3.txt fso.MoveFile filePathB, filePathC '删除FileTest3.txt fso.DeleteFile filePathC, True '强制删除只读文件 '下面通过File对象来操作 Set fileA = fso.GetFile(filePathA) fileA.Copy filePathB, True '复制 Set fileB = fso.GetFile(filePathB) fileB.Move filePathC '移动 Set fileC = fso.GetFile(filePathC) fileC.Delete True '删除 Set fso = Nothing %>
3. 打开文本文件
打开已经存在的文本文件,可以使用FSO对象的 OpenTextFile方法或File对象的OpenAsTextStream方法,格式如下:
fso.OpenTextFile(文件路径,读写模式,是否创建新文件,使用的编码) file.OpenAsTextStream(读写模式,是否使用Unicode编码)
参数“读写模式”的可选值如表1-10所示。
表1-10 “读写模式”的可选值
参数“使用的编码”的可选值如表1-11所示。
表1-11 “使用的编码”的可选值
参数“是否创建新文件”的默认值为False,如果为True,则文件不存在时会自动创建。
OpenTextFile方法和OpenAsTextStream方法返回的也是TextStream对象,可以通过它进行后续操作,具体使用方法请参见1.7.3节。
下例将创建一个文本文件,然后打开该文件,读取一行数据。
FileOpenTextFile.asp
<%@codepage=936%> <% Response.Charset = "GBK" '当前目录下的FileOpenTest.txt filePath = Server.MapPath(".") & "\FileOpenTest.txt" Set fso = CreateObject("Scripting.FileSystemObject") '打开文本文件(只读方式,不创建新文件,使用Unicode编码) Set txtFile = fso.OpenTextFile(filePath,1, False, -1) '读取一行数据,并关闭 Response.Write txtFile.ReadLine() txtFile.Close Set fso = Nothing %>