|
|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑 + \# M( D2 T) I/ e
. d/ c0 R; V% M# S4 E1 @6 A$ u, ?
感谢斑竹回复,下面我用DIR实现了要求的功能:3 f9 X2 ^2 @. W. h' S
! d/ Z! q5 o a; O; o
0 L8 ^8 Q' f1 A% M# eDim Files() As String '文件路径
6 [- y+ }* Y5 Q: w8 Z, l7 @Dim Folder() As String '文件夹路径
3 U4 }! E6 v8 d/ I0 m" r) {$ xDim a, b, c As Long
1 L+ d; x" `8 c! w& t/ M4 wDim sPath As String$ e$ f* `, t7 T$ D5 v" t
% J. p# X# O% F5 v" ^& ]8 Z
sPath = Dir(filePath & FileType) '查找第一个文件
+ [% p; b) d% l; K! Y. M6 y4 v% P- Q
Do While Len(sPath) '循环到没有文件为止
8 H$ ? N1 L5 h* ]( v9 H a = a + 16 g/ y- G' u4 X# g/ K
ReDim Preserve Files(1 To a)& p7 ]% ?/ M- R+ u0 _# H
Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
& x' w) | m% g# t2 B9 B0 h; V% L) U ListBox1.AddItem Files(a) '加入list控件中
6 q+ S) ^# e, @& J; S; r& g sPath = Dir '查找下一个文件% U4 Y% Y4 I! F& H7 p! W" u
DoEvents '让出控制权! Z6 K s6 f$ Z) L" y/ ~. U$ h' h0 e
Loop' C. W, Z. T/ g( U
* A3 f5 h" h1 F2 x( p/ Z& }sPath = Dir(filePath, vbDirectory) '查找第一个文件夹
4 \. |, s) ]2 H9 d. A5 e8 @# i1 n
Do While Len(sPath) '循环到没有文件夹为止7 A3 U& t$ U/ z# p0 I8 S. k
If Left(sPath, 1) <> "." Then '为了防止重复查找
7 K) E0 @* O) P, l If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。9 c5 @' H0 N2 f- M* ~) W. ]
b = b + 1" v7 Y& ^$ H/ e5 T P+ `, D
ReDim Preserve Folder(1 To b)7 ?$ q( R- h# C1 P& r; _
Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
% \, a4 R& S* J0 i( j End If
. u' P7 l; f) u7 @. a End If
4 F& x8 H! P. w0 g$ |& YsPath = Dir '查找下一个文件夹6 H9 G7 \$ r$ v
DoEvents '让出控制权
+ l: z; P$ f, C! i3 G T3 \, {/ dLoop( K* I$ Q0 X' J4 J; N
; o1 V% f" _8 aFor c = 1 To b '使用递归方法,遍历所有目录
5 U& V0 O7 P+ A9 Z SearchFiles Folder(c), FileType
1 ^+ R; ~7 M! G5 g" cNext |
|