|
|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑 1 o8 I3 i$ l, v. U1 ~
U8 G9 _: j' |# C$ t$ j0 \感谢斑竹回复,下面我用DIR实现了要求的功能:
) X7 {. V& @5 v4 V9 Y$ d3 m/ T6 Y2 c( b% M5 j! Z
' x6 r+ ]& v. @8 \& E
Dim Files() As String '文件路径, M% F( M) n1 T c+ p: |
Dim Folder() As String '文件夹路径
( Y) @' e0 p7 ?$ g+ HDim a, b, c As Long
5 h! g9 J, @/ ~9 {! h) l, CDim sPath As String# p6 ^3 J" \! A& B: G' X
5 L/ V$ |/ l# Q# G0 s; ~2 h1 Q$ G
sPath = Dir(filePath & FileType) '查找第一个文件
5 m; G; i" S8 B; Y3 I% u
( Q9 W* z+ W5 R3 z3 VDo While Len(sPath) '循环到没有文件为止. q' L5 P0 w1 q0 ` f
a = a + 1; W6 Q9 B8 K R& i5 n) e! n9 l
ReDim Preserve Files(1 To a)
+ [. C* y) O1 H3 G# T Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
: k z' e! j% }( ~" o( b ListBox1.AddItem Files(a) '加入list控件中+ N8 v( r2 `7 t+ n" V; u
sPath = Dir '查找下一个文件6 O3 N* g8 S- m; a, r2 U
DoEvents '让出控制权1 x4 C$ T2 q( C& b0 K3 _
Loop
4 l6 J3 ?1 h: Y5 I2 C
" A+ Z' B6 c9 o# r6 @ C- Z' J! a7 rsPath = Dir(filePath, vbDirectory) '查找第一个文件夹
, `" y) |% t, ~1 q9 i: q
. N# [8 @0 ?1 X* b9 V2 ?Do While Len(sPath) '循环到没有文件夹为止( J9 I; E9 }$ h6 |$ g! c6 u
If Left(sPath, 1) <> "." Then '为了防止重复查找
+ K9 u8 U4 X% l; w3 K If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。% }1 {- q, U5 B/ W( t+ u5 u
b = b + 1
) H+ }, i7 L5 ?4 Y1 r* g: t# e( | ReDim Preserve Folder(1 To b)
) _) q4 U1 l9 t1 x- P/ V- A- j Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中& V7 j/ F( a' g8 E% T, ]% |
End If
5 q- D( h( d' V$ O, w2 O2 o5 J! W End If# t9 h/ A- q1 b
sPath = Dir '查找下一个文件夹
! _! L# G, [5 h$ aDoEvents '让出控制权
$ X2 r9 ~& x' K7 E6 s& R# {) ZLoop+ F5 K; f+ S' R/ B9 v# {) v( K6 t, z
o K% ?3 @: b. F8 a: j& vFor c = 1 To b '使用递归方法,遍历所有目录1 L/ L/ w+ o z0 f- v) y$ L
SearchFiles Folder(c), FileType
! Y, j0 F5 B6 w: K2 U! _ ENext |
|