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

posted @ 2020-02-16 23:27  zhujie-  阅读(227)  评论(0编辑  收藏  举报