VB枚举某一个目录下的全部文件夹

VB枚举某一个目录下的全部文件夹,第1张

'用API搜索所有文件夹

Public Sub FileSearch(ByVal sPath As String)

Static lngFiles As Long

Dim sDir As String

Dim sSubDirs() As String

Dim lngIndex As Long

Dim lngTemp&

DoEvents

If Right(sPath, 1) <>"\" Then sPath = sPath &"\"

DoEvents

lngIndex = 0

sDir = Dir(sPath &"*.*", vbDirectory)

Do While Len(sDir)

If Left(sDir, 1) <>"." And Left(sDir, 1) <>".." Then

If GetAttr(sPath &sDir) And vbDirectory Then

lngIndex = lngIndex + 1

ReDim Preserve sSubDirs(1 To lngIndex)

sSubDirs(lngIndex) = sPath &sDir &"\"

List1.AddItem sSubDirs(lngIndex)

DoEvents

End If

End If

sDir = Dir

Loop

End Sub

Private Sub Command1_Click() '测试代码

FileSearch "d:\" '设置初始路径

End Sub

'添加一个按钮,一个列表框,效果很好的,不明白的加我百度HI

很简单啊!

用FolderObject对象、什么乱七八糟的集合、什么Scripting.FileSystemObject一大堆,然后用For Each遍历集合,就行啊!

在网上搜吧!

不会就问我。

这个是查找指定类型文件的函数,你调用下:

Public

Function

TreeSearch(ByVal

sPath

As

String,

ByVal

sFileSpec

As

String,

sFiles()

As

String)

As

Long

Static

lngFiles

As

Long

Dim

sDir

As

String

Dim

sSubDirs()

As

String

Dim

lngIndex

As

Long

Dim

lngTemp&

If

Right(sPath,

1)

<>

"\"

Then

sPath

=

sPath

&

"\"

sDir

=

Dir(sPath

&

sFileSpec)

Do

While

Len(sDir)

lngFiles

=

lngFiles

+

1

ReDim

Preserve

sFiles(1

To

lngFiles)

sFiles(lngFiles)

=

sPath

&

sDir

sDir

=

Dir

Loop

lngIndex

=

0

sDir

=

Dir(sPath

&

"*.*",

vbDirectory)

Do

While

Len(sDir)

If

Left(sDir,

1)

<>

"."

And

Left(sDir,

1)

<>

".."

Then

If

GetAttr(sPath

&

sDir)

And

vbDirectory

Then

lngIndex

=

lngIndex

+

1

ReDim

Preserve

sSubDirs(1

To

lngIndex)

sSubDirs(lngIndex)

=

sPath

&

sDir

&

"\"

End

If

End

If

sDir

=

Dir

Loop

For

lngTemp

=

1

To

lngIndex

Call

TreeSearch(sSubDirs(lngTemp),

sFileSpec,

sFiles())

Next

lngTemp

TreeSearch

=

lngFiles

End

Function


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8011930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存