在实际的运用中,我们有时要求能获得一个目录下的所有文件列表,包括子目录下的文件。
在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
tP As String
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,"sans-serif"; mso-fareast-font-family: 新宋体; mso-font-kerning: 0pt; mso-no-proof: yes;" lang="EN-US"> Else
j = tS.GetUpperBound(0)
ReDim Preserve tS(j + tS1.Length)
End If
Next
Return tS
End Function