|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑 ) t- x& F$ M+ k! h# h+ H) z) H2 @9 y) |) h1 p
" o0 `6 a; T: U8 ^( ^8 C
感谢斑竹回复,下面我用DIR实现了要求的功能:9 p0 D5 T5 b0 E$ {( E/ N
A. I! k) l; t
3 y0 ~& w, V$ uDim Files() As String '文件路径0 I) R5 \& Q3 A9 t" Q/ f9 e
Dim Folder() As String '文件夹路径; U- `% O5 n3 F
Dim a, b, c As Long
- ~: T: ?" W& S& e2 |Dim sPath As String7 u6 ]0 K) v4 ^: {+ u* {. M8 h
& }$ g5 v. W# ~* V- IsPath = Dir(filePath & FileType) '查找第一个文件0 X' q- O5 V) ?: x m
$ {1 |5 ]1 }5 W& s, D, n# }7 N1 w
Do While Len(sPath) '循环到没有文件为止
. \' h0 Y/ \4 x* w a = a + 1
+ d0 d& x6 T {5 F1 M. F ReDim Preserve Files(1 To a)6 D- g. f( d) N4 O0 Z' v
Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
- u* o' e3 v0 ?% N ListBox1.AddItem Files(a) '加入list控件中
" a, t# t M, W! D, B# z sPath = Dir '查找下一个文件& d( N3 |) v) m3 O! y% ^
DoEvents '让出控制权2 ]3 h+ _, C( |
Loop6 {% ?) p, {2 h+ N% b- Y
+ M* Z9 H$ Y& P+ K3 usPath = Dir(filePath, vbDirectory) '查找第一个文件夹 ^' a4 p. p: _5 j2 G+ L6 v
! B8 d1 g( F3 l+ A
Do While Len(sPath) '循环到没有文件夹为止
& d1 ?9 A( n3 f4 a- S If Left(sPath, 1) <> "." Then '为了防止重复查找' w: i3 Q, Q9 ~4 T6 F, J
If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。0 W; j& q1 l& S. K
b = b + 1
( z8 u* d+ O- O. V ReDim Preserve Folder(1 To b)
6 x( P7 j. D; z# \4 T' y* f: { Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中+ {) t5 S* l, S6 H2 P0 l" E- Q
End If" y, H% a ~2 j4 k, G+ o
End If8 x i& S/ _9 ]! }7 l
sPath = Dir '查找下一个文件夹
+ N: w5 r3 U. z' n2 k2 X5 ~. y" sDoEvents '让出控制权
l. F) O) j6 E( P& S* P/ CLoop$ w% f* P, }* q+ _
. f8 }6 z0 s7 g/ [, ^For c = 1 To b '使用递归方法,遍历所有目录2 Q" ^ U, S" Y* H
SearchFiles Folder(c), FileType
% D4 L/ Q' z, C0 N% R0 _Next |
|