|
|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑 - f( N. D6 W8 d: b
n: h, M- |% a) G感谢斑竹回复,下面我用DIR实现了要求的功能:8 Z1 |: j% u$ l# r1 w
- u/ U9 ^% @2 u3 J# k# f7 A9 n2 N% z) J
' f2 y6 ^" B; ~$ d9 z; KDim Files() As String '文件路径5 E9 g2 @5 ^4 `! X
Dim Folder() As String '文件夹路径: \$ Z/ `- K! _! O* T7 A
Dim a, b, c As Long
, F F9 w8 v1 ?% A, T+ E2 ?Dim sPath As String
/ j) u& z% Z9 G2 S8 B% o. t3 N- B1 p8 ^( X: e( Z: f1 J
sPath = Dir(filePath & FileType) '查找第一个文件
5 [1 T7 c# M" S+ }/ g7 F( y$ C8 f# `7 O, N0 w. o
Do While Len(sPath) '循环到没有文件为止
8 a1 K, n1 J5 H6 D' L* {$ S a = a + 1
5 D2 @! J2 E. L+ i. ?/ G; H0 a1 Z, } ReDim Preserve Files(1 To a)
& _7 r( F- D4 d; S Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
" _% M' @- N# Q/ k) [ ListBox1.AddItem Files(a) '加入list控件中
2 M2 W, f% G6 h' y5 V0 {3 X sPath = Dir '查找下一个文件; ^; g# Z+ u3 l& i. d/ O# j
DoEvents '让出控制权
; o. G" c0 f: @9 g1 R7 }' }Loop/ o; B6 d& p0 v# y$ Z
4 q$ W. C+ d- t; v. jsPath = Dir(filePath, vbDirectory) '查找第一个文件夹
# [( v3 _3 b6 b6 m
2 Y. A8 `% _$ m8 G5 GDo While Len(sPath) '循环到没有文件夹为止/ m# V1 J+ E: S- y& q g% f* A0 ^' j
If Left(sPath, 1) <> "." Then '为了防止重复查找; L1 ]% C, O% Y% N6 G& `! {
If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。9 e2 x6 n; p6 o6 M" G
b = b + 1$ f. \, L% u+ T5 v1 M0 Z
ReDim Preserve Folder(1 To b)
3 c- w& S7 ^1 T' j; H Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
6 L. x! P @' B# X End If
# W) r6 c1 R" K End If( F; n0 U( J: T) k$ v8 N
sPath = Dir '查找下一个文件夹
5 Z( `) M$ C! C7 S5 p2 uDoEvents '让出控制权( X3 j% R5 b2 ?
Loop, D5 Y, K5 [; y- ^) V* S$ e
k& X+ \ B i4 _! L
For c = 1 To b '使用递归方法,遍历所有目录' H& _$ O# h1 o
SearchFiles Folder(c), FileType
( }5 V% u$ l6 g- _2 P- R4 hNext |
|