功能:包括文件的创建(打开)、复制、移动、删除及获取与文件有关的信息。
可以使用FileSystemObject对象和File对象完成文件管理工作。
管理文件的部分属性和方法:P229-230表12-5;表12-6
1.文件的创建与打开
FSO对象模型提供了三种创建和打开文件的方法:
(1)使用FileSystemObject对象的CreateTextFile方法
格式:
.CreateTextFile([,[,Unicode]])
功能:创建一个指定文件名的文件,并且返回一个用于对该文件进行读写的TextStream对象。
说明:
① :一个FileSystemObject的名字。
② :字符串表达式,表示新创建的文件名。
③ :当设置为False时,表示如果文件已存在,新创建的文件不覆盖原文件,否则覆盖原文件。缺省值为False。
使用前应用FileExists方法判断文件是否存在,以免发生错误。
④Unicode:当设置为False时,表示创建ASCII文件,否则创建Unicode文件。缺省值为False。
【例12-8】创建一个名为“testfile.txt”的文件,并在文件中写入“创建文件方法一:使用CreateTextFile方法”。
Private Sub Command1_Click()
Dim fso,tso
Set fso=CreateObject( "Scripting.FileSystemObject")
'判断文件是否存在
If fso.FileExists(“c:\testfile.txt”)Then
MsgBox "文件已存在!"
Unload Me
Else
Set tso=fso.CreateTextFile( "c:\testfile.txt",True)
tso.WriteLine( "创建文件方法一:使用
CreateTextFile方法 ") '向文件中写
tso.Close
End If
End Sub
(2)使用FileSystemObject对象的OpenTextFile方法
格式: .OpenTextFile
([,[,[,]]])
功能:打开指定的文件;返回一个TextStream对象
说明:
① :一个FileSystemObject的名字。
② :字符串表达式,表示新创建或打开的文件名。
③ :可选项。表示输入/输出方式,可为常量ForReading或ForAppending。
④ :False—如果文件不存在将不创建文件,True—时创建一个新文件。
缺省值为False。
⑤ :打开文件的格式。
如果省略,则文件以ASCII格式打开。
【例12-9】创建一个名为TestFile.txt的新文件,并写入“打开或创建文件方法二:使用OpenTextFile方法”。
Private Sub Command1_Click()
Dim fso,fTextStream
Set fso= _
CreateObject( "Scripting.FileSystemObject")
'创建TextStream对象
Set fTextStream=fso.OpenTextFile( "c:\testfile.txt", _2,True)
fTextStream.Write _
"打开或创建文件方法二,使用OpenTextFile方法"
fTextStream.Close '关闭文件
End Sub
(3)使用File对象的OpenAsTextStream方法
格式:
.OpenAsTextStream([,[]])
功能:打开指定的文件;返回一个TextStream对象,
该对象可用来对文件进行读、写、追加操作。
说明:
① :一个File对象的名字。
② :表示输入/输出方式。可为常量:
ForReading、ForWriting或ForAppending
③ :指示打开文件的格式。
如果省略,则文件以ASCII格式打开。
【例12-10】用写方式创建文件“testfile.txt”,并写入“创建文件方法三:OpenAsTextStream方法”。
Private Sub Command1_Click()
Dim fso,fo,tso
Set fso=CreateObject( "Scripting.FileSystemObject")
fso.CreateTextFile "c:\testfile.txt" '创建一个文件
'获得一个File对象的文件句柄
Set fo=fso.GetFile( "c:\testfile.txt")
'创建TextStream对象用于写
Set tso=fo.OpenAsTextStream(2)
tso.Write "创建文件方法三(OpenAsTextStream方法)"
tso.Close
End Sub
2.文件的复制、移动、删除
(1)使用FileSystemObject对象的
CopyFile、MoveFile、DeleteFile方法。
例:
Dim fso,fo
Set fso=CreateObject("Scripting.FileSystemObject")
'复制文件“c:\testfile.txt”到"c:\destination\textfile.txt"
fso.CopyFile "c:\testfile.txt", "c:\destination\"
(2)使用File对象的Copy、Move、Delete方法。
例:
Dim fso,fo
Set fso=CreateObject("Scripting.FileSystemObject")
'复制文件"c:\testfile.txt"到"c:\destination\textfile.txt"
Set fo=fso.GetFile("c:\testfile.txt") ' 获得File对象句柄
fo.Copy"c:\destination\"
3.获取与文件有关的信息
FileSystemObject对象和File对象必须配合使用才能获取文件的有关信息。
【例12-11】执行下列程序可以查询文件:
c:\windows\notepad.exe
建立的时间和文件大小等文件信息。
Private Sub Command1_Click()
Dim fso,fo,stemp
Set fso =_
CreateObject( "Scripting.FileSystemObject")
'获得一个File对象
Set fo=fso.GetFile( "c:\windows\notepad.exe")
sString=“文件” & _
UCase(fo.Name) & vbCrLf & vbCrLf '获得文件名
'获得文件创建时间
sString=sString & "建立的时间是: " & _
fo.DateCreated & vbCrLf & vbCrLf
'获得文件的大小
sString=sString & "占用的磁盘空间为: " & _
fo.Size & "字节"
MsgBox sString '显示获得的文件信息
End Sub
4.文件读/写
使用TextStream对象进行文件的读写操作。
TextStream对象与读/写文件有关的方法见P232表12-8。
5.关闭文件
关闭由TextStream对象打开的文件用Close方法。
例如:tso.Close。
【例12-12】创建一个文件并写入一些信息,然后再将信息读出显示在消息框中。
Private Sub Command1_Click()
Dim fso,fo,tso,sString
Set fso=
_CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile "c:\testfile.txt" '创建一个文件
'获得一个File对象的文件句柄
Set fo=fso.GetFile("c:\testfile.txt")
'创建TextStream对象用于写
Set tso=fo.OpenAsTextStream(2)
'在文件中写一个字符串
tso.Write"用TextStream对象的Write、Read方法,演示文件的读写操作"
tso.Close
Set tso=fo.OpenAsTextStream()
sString=tso.ReadLine ' 读一行
tso.Close
MsgBox sString ' 显示读出的信息
End Sub