获得指定目录下的所有文件的列表(包括子目录下的文件)——VB2005

时间:2022-05-14 14:29:24

 

 

在实际的运用中,我们有时要求能获得一个目录下的所有文件列表,包括子目录下的文件。

 

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