在实际的运用中,我们有时要求能获得一个目录下的所有文件列表,包括子目录下的文件。
在VB2005中有函数My.Computer.FileSystem.GetFiles(Path)。其效用是获得目录下所有文件列表,但是不包括子目录下的文件。My.Computer.FileSystem.GetDirectories(Path)这个函数效用是获得目录下的一级子目录的列表,不包含子目录下的目录列表。
将这两个函数灵活运用,就能达到标题所要求的效果。现将代码赋予其后。
函数:GetAllFile
作用:获得制定目录下的文件列表,包括子目录下的文件
参数:Path;制定的目录名
返回值:字符串数组,目录列表
Public Shared Function GetAllFile(ByVal Path As String) As String()
Dim tS() As String
Dim tC As Collections.ObjectModel.ReadOnlyCollection(Of String) _
= My.Computer.FileSystem.GetFiles(Path)
ReDim tS(tC.Count - 1)
tC.CopyTo(tS, 0)
Dim tS1() As String
Dim tP As String
Dim j As Integer
For Each tP In My.Computer.FileSystem.GetDirectories(Path)
tS1 = GetAllFile(tP)
If tS1.Length > 0 Then
If tS.Length = 0 Then
ReDim tS(tS1.GetUpperBound(0))
tS1.CopyTo(tS, 0)
Else
j = tS.GetUpperBound(0)
ReDim Preserve tS(j + tS1.Length)
tS1.CopyTo(tS, j + 1)
End If
End If
Next
Return tS
End Function