Option Explicit
'以竖式遍历先遍历某子目录及内部所有子目录,然后再返回与之同级的目录
Sub GetPath(ByVal FilePath As String, ByVal list As ListBox)
'获取文件路径
FilePath = IIf(Right(FilePath, 1) = "\", FilePath, FilePath & "\")
'获取当前目录内的文件名
Dim FileName As String
FileName = Dir(FilePath) '初次使用dir函数需指明路径
'使用一个循环,遍历当前目录内的文件,并逐一验证其属性
Do While FileName <> ""
If Right(FileName, 3) = "jpg" Then
list1.AddItem FilePath & "\" & FileName
End If
FileName = Dir
Loop
'缺少此句只会遍历一级目录
FileName = LCase(Dir(FilePath, vbDirectory))
Dim ChildContent() As String
Dim Count As Integer
'获取下一级目录
Do While FileName <> ""
If FileName <> "." And FileName <> ".." Then
If GetAttr(FilePath & FileName) And vbDirectory Then
Count = Count + 1
ReDim Preserve ChildContent(Count)
'将下一级目录放入动态数组
ChildContent(Count) = FilePath & "\" & FileName
End If
End If
FileName = Dir
DoEvents
Loop
'回调自身,获取下一级目录内文件路径
Dim i As Integer
For i = 1 To Count
GetPath ChildContent(i), list
Next i
End Sub
Private Sub cmdGetPath_Click()
GetPath App.Path, list1
End Sub
vb实现获取指定目录内的所有文件(包括子目录)
最新推荐文章于 2022-09-14 06:51:49 发布
该代码段展示了一个VB子程序`GetPath`,用于递归地遍历指定目录及其子目录,查找并列出所有`.jpg`文件。通过`Dir`函数获取目录中的文件名,然后检查文件是否为jpg格式,将其添加到ListBox中。同时,程序会继续遍历子目录,直到所有层级都被检查。点击按钮`cmdGetPath_Click`启动该过程,传入应用程序路径作为初始目录。
2666

被折叠的 条评论
为什么被折叠?



