|
|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑 , U! J( C* g0 Y5 p* i
( T) ~/ _: W, N( K0 }
感谢斑竹回复,下面我用DIR实现了要求的功能:
% a8 F: L0 H; I a# D& V) w6 v) t4 b8 e5 O! d3 |
( H5 {* m! W' @/ Q% BDim Files() As String '文件路径& r2 b5 L2 F8 V1 L1 u
Dim Folder() As String '文件夹路径2 J' G9 U7 ]' v
Dim a, b, c As Long
3 r$ y/ o% t( d' Z- w9 G( [Dim sPath As String
$ M' q# f1 ?6 t, p: j, ^2 e0 H
0 g& X7 o- N9 gsPath = Dir(filePath & FileType) '查找第一个文件
0 l6 q+ M; i3 }$ O+ g
! s' S+ T$ d" D& k ^Do While Len(sPath) '循环到没有文件为止2 N, i& q& I$ W+ x! S( b" a
a = a + 1. n. c5 E' R' Q: L% D" C
ReDim Preserve Files(1 To a)& [6 d7 c5 ^8 ?/ z5 H
Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
% |: ?) D7 q( m8 z ListBox1.AddItem Files(a) '加入list控件中# E* M. p( O, [! d2 q
sPath = Dir '查找下一个文件
2 I- S/ ~8 K, p DoEvents '让出控制权
9 M8 e% x7 c; A! ZLoop; \0 n5 d% S5 r m
! F6 s9 }" @! `
sPath = Dir(filePath, vbDirectory) '查找第一个文件夹
) `" e7 \8 ?' `7 t! H5 e( L
2 p1 m0 k, W, g' ZDo While Len(sPath) '循环到没有文件夹为止
1 j& {9 B* U3 n If Left(sPath, 1) <> "." Then '为了防止重复查找
/ ]4 F n9 X9 [8 n! a4 p7 h) Q& w If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。
) k; @# ?8 E- A4 b4 z" Q b = b + 1
- ~% E m/ r3 L6 M ReDim Preserve Folder(1 To b)
* o6 Y! i6 d% w2 k5 z Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
5 M2 i- {: w+ B) ?: A% P5 R6 y End If
" ~" A- [. [6 f End If
' d8 l% X9 [, P. D f7 QsPath = Dir '查找下一个文件夹
" j4 {" o. r2 j6 `6 A, l8 sDoEvents '让出控制权4 h' R7 w# q( ~; I
Loop
7 X- I/ M0 {# t) X- }2 \1 L! {! v8 c4 f& S0 B# ^! Z U
For c = 1 To b '使用递归方法,遍历所有目录4 K4 X$ y9 [, O$ Q1 g, v; }
SearchFiles Folder(c), FileType& Z1 \3 r' ?0 ]* Y, b8 b0 X: d6 }
Next |
|