|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑
2 F/ \) F7 K: m% t4 a
( V% k* B+ l- k% J感谢斑竹回复,下面我用DIR实现了要求的功能:+ ^# T1 q8 _1 r1 K7 P; `& X4 _
5 g1 P: T, x5 k- o
( `( }& L1 h7 V9 ?' u4 e+ n
Dim Files() As String '文件路径- J" x* x4 X3 R" U7 x
Dim Folder() As String '文件夹路径( Y. Y& ~$ }6 T8 R6 k
Dim a, b, c As Long- [ O' }5 \) ^* H4 w
Dim sPath As String2 ]5 x, O3 v ~) b, q
; @4 l# B/ I7 H/ C$ a5 XsPath = Dir(filePath & FileType) '查找第一个文件0 N. V; |- G! p O- e% x1 U7 h
9 H$ v5 Z5 |; m, P3 C
Do While Len(sPath) '循环到没有文件为止' X2 {+ a" ]$ f, a
a = a + 1
1 o! K# }# L! \7 m. C ReDim Preserve Files(1 To a)
! U& P+ [3 A8 h, } Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
" T7 @2 ^. E! O% `7 R ListBox1.AddItem Files(a) '加入list控件中
* S" w% @( @ O# b6 D. _' D sPath = Dir '查找下一个文件* y& m" R) P- A
DoEvents '让出控制权
8 p: p6 u% z, n* A* ~Loop1 F( z/ s( p9 G* p- f# ^2 [" @2 }
6 N* b( _4 P* ~0 l( Z% `sPath = Dir(filePath, vbDirectory) '查找第一个文件夹
( F" N' @( `) N3 w+ }1 K* w( M- H) ?7 w9 k8 D0 B
Do While Len(sPath) '循环到没有文件夹为止 ?+ J V7 ?8 @: L) w: r5 U
If Left(sPath, 1) <> "." Then '为了防止重复查找5 w9 q6 S8 H5 X7 |( n
If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。, g. m* ~% y) q9 P+ B& F$ f: ^; F
b = b + 1
2 w3 m9 j4 }2 x k4 q7 @( l7 u ReDim Preserve Folder(1 To b)" T5 }; A$ b! F7 k
Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
4 W/ w1 e$ o. E$ P7 B9 N H End If) `+ S1 Q, ~- W
End If
; A$ ~+ _0 k+ E1 w$ r b/ O C* lsPath = Dir '查找下一个文件夹
: a/ {0 E' w2 D/ _DoEvents '让出控制权 N4 r2 d1 g3 G2 E* M
Loop% R1 C) C% W, i# S' |, m9 z
9 a) @ k: [! u! f8 f% W+ kFor c = 1 To b '使用递归方法,遍历所有目录0 t* o5 O# ^. q0 k: g w
SearchFiles Folder(c), FileType% X Q+ h9 g9 A) R, y8 G
Next |
|