fso操作文件类
Option Explicit
Private fso As Object
'Private fso As FileSystemObject
'写入,Optional表示“可选参数”,意思就是调用的时候,该参数可以传入,也可以不传入
Sub WriteAllText(fileName As String, str As String, Optional AppendOrNot As Boolean = False)
Dim number As Integer
number = FreeFile
If AppendOrNot Then
Open fileName For Append As #number '追加方式打开文件
Else
Open fileName For Output As #number '覆盖方式打开文件
End If
Print #number, str;
Close #number '关闭
End Sub
'读取所有行,返回字符串数组
Function ReadAllLines(fileName As String) As String()
Dim arr() As String, k As Integer, number As Integer
number = FreeFile
Open fileName For Input As #number '打开文件
Do While Not EOF(number) '循环读取
'建议把数组做成“步进式扩容”
k = k + 1
ReDim Preserve arr(1 To k) As String
Line Input #number, arr(k)
Loop
Close #number '关闭
ReadAllLines = arr
End Function
'读取全部数据,返回字符串
Function ReadAllText(fileName As String) As String
Dim number As Integer, s As String
number = FreeFile '产生一个当前可用的最小文件号
Open fileName For Input As #number '打开文件
Do While Not EOF(number) '循环读取
s = s & Input(1, number)
Loop
Close #number '关闭
ReadAllText = s
End Function
'写入一行
Sub WriteLine(fileName As String, s As String, Optional AppendOrNot As Boolean = False)
'Dim ts As TextStream
Dim ts As Object
Dim ForAppending As Variant
Dim ForWriting As Variant
If AppendOrNot Then
Set ts = fso.OpenTextFile(fileName, ForAppending)
Else
Set ts = fso.OpenTextFile(fileName, ForWriting)
End If
ts.WriteLine (s)
ts.Close
Set ts = Nothing
End Sub
'判断文件是否存在
Function FileExist(fileName As String) As Boolean
FileExist = fso.FileExists(fileName)
End Function
'初始化对象时,创建fso对象
Private Sub Class_Initialize()
'Set fso = New FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
End Sub
'对象销毁时,释放fso空间
Private Sub Class_Terminate()
Set fso = Nothing
End Sub