|
![](https://clubstatic.excelhome.net/image/common/ico_lz.png)
楼主 |
发表于 2017-9-22 22:50
|
显示全部楼层
本帖最后由 乐乐2006201505 于 2017-9-22 22:51 编辑
还没有试,是duquancai老师的大作,感谢杜老师,出处:http://club.excelhome.net/forum. ... 5&page=2#pid9245563
' 函数说明:
' 本函数模拟队列数据结构用dir函数进行遍历指定文件夹及子文件下的所有指定类型的文件
' 1 、函数参数说明: pPath形参代表初始指定的文件夹路径;pMask形参代表文件后缀表达式,如:"*.xls*"
' 2、函数返回值说明:返回一位数组为初始文件夹及只文件夹下的所有全路径文件
Function Getfilname(ByVal pPath$, ByVal pMask$) As Variant
Dim DirFile, mf&, fileNameArr$(), workStack$(), foot&, head&
foot = 0: head = 0: ReDim workStack(1 To 1)
Do While foot < head + 1
DirFile = Dir(pPath & pMask)
Do While DirFile <> ""
mf = mf + 1: ReDim Preserve fileNameArr(1 To mf)
fileNameArr(mf) = pPath & DirFile
DirFile = Dir
Loop
DirFile = Dir(pPath, vbDirectory)
Do While DirFile <> ""
If DirFile <> "." And DirFile <> ".." Then
If (GetAttr(pPath & DirFile) And vbDirectory) = vbDirectory Then
head = head + 1: ReDim Preserve workStack(1 To head + 1)
workStack(head) = pPath & DirFile & "\"
End If
End If
DirFile = Dir
Loop
foot = foot + 1: pPath = workStack(foot)
Loop
Getfilname = fileNameArr: Erase workStack
End Function |
|