|

楼主 |
发表于 2010-5-20 12:28:36
|
显示全部楼层
来自: 中国浙江杭州
本帖最后由 157787698 于 2010-5-20 12:30 编辑
3 L# }+ Z5 g& r6 A& V1 v7 }( `; r$ B% q
感谢斑竹回复,下面我用DIR实现了要求的功能:; ] o1 {3 {$ B4 B
% d, T( Z4 x7 J+ O* ~
) I, L6 m) E/ h. W
Dim Files() As String '文件路径1 C5 y* ?2 v, X
Dim Folder() As String '文件夹路径
3 r5 o0 z5 O$ w/ y0 r% |Dim a, b, c As Long
+ `8 n/ ?+ F& y1 TDim sPath As String
; b& w6 T0 L9 B
; v. j2 E0 ?' t3 IsPath = Dir(filePath & FileType) '查找第一个文件$ T& p/ w; A8 _6 D/ b
- X, A. K. x* |( Z; E) H: EDo While Len(sPath) '循环到没有文件为止
. W) A7 a \; m1 q" }7 f a = a + 19 R0 E7 y+ {+ T1 x9 i, E. [
ReDim Preserve Files(1 To a)
9 t$ R& G5 z1 q% Y- W, b2 O1 q Files(a) = filePath & sPath '将文件目录和文件名组合,并存放到数组中
1 F6 W8 b2 L" M0 _ ListBox1.AddItem Files(a) '加入list控件中) h' z6 u' R5 U' e4 Y
sPath = Dir '查找下一个文件$ B4 B4 a$ a% a6 r$ ]( u
DoEvents '让出控制权# |+ T5 }4 y- L3 f
Loop1 _% m( T, o: ^$ J3 }: g; _
5 h e7 U0 y3 T7 @. U
sPath = Dir(filePath, vbDirectory) '查找第一个文件夹' F% s, b! S- E. N* I2 p
8 h( Q( p. A" l) l: ]Do While Len(sPath) '循环到没有文件夹为止, \' @& N0 [+ {
If Left(sPath, 1) <> "." Then '为了防止重复查找
; x& [! h4 t0 P5 B% E% N/ q+ n If GetAttr(filePath & sPath) And vbDirectory Then '如果是文件夹则。。。。。。
+ G; g0 e3 s# `3 S# S7 J b = b + 1
* o }# j1 N: m0 ?* I/ m ReDim Preserve Folder(1 To b)
_* t; b0 b# F Folder(b) = filePath & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
# m' W- d) B: r0 m+ ~3 s7 h End If9 h; o V( H& m* w
End If4 _, [/ G8 _* ^
sPath = Dir '查找下一个文件夹! H+ c0 ~: r! F( ?7 t
DoEvents '让出控制权
7 b9 h0 f& K1 b1 ?/ R oLoop- b& V! G" m! z8 V q
- `' c) J, {5 }. ?; D& AFor c = 1 To b '使用递归方法,遍历所有目录
2 b8 o/ f+ b( y4 t SearchFiles Folder(c), FileType5 Q3 W) s. ?1 T1 b1 T2 ~
Next |
|