如何历遍一个目录下的所有文件夹,包括隐藏的文件夹
不知该怎么办,那些隐藏的文件夹就是历不出来,大家有什么办法吗? --------------------编程问答-------------------- 哦,补充:由于相关限制,不能用FSO功能。 --------------------编程问答-------------------- '添加 Command1 List1'这个代码可以检测到隐藏的文件夹, 而且应该不会有其他人比我这个快速
Private Declare Function GetTickCount& Lib "kernel32" ()
Private WithEvents Timer1 As Timer
Dim FolderPath$, TxtName$, Starttm&, BgnTm&
Private Sub Form_Load()
TxtName = "c:\dir.txt"
FolderPath = "e:\music" '这里你可以用Browser等方式挑路径或直接用变量
End Sub
Private Sub Command1_Click()
On Error Resume Next
BgnTm = GetTickCount
If Dir(FolderPath, vbDirectory) = "" Then MsgBox "bb": Exit Sub
If Dir(TxtName) <> "" Then Kill TxtName
Open "c:\SchDir.bat" For Output As #1
Print #1, "@echo off"
Print #1, "dir " & FolderPath & " /ad/s/b >" & TxtName
Print #1, "exit"
Close #1
Call Shell("cmd /c c:\schdir.bat", vbHide)
Starttm = Timer
Do
DoEvents
If Not Isrunexe("cmd.exe") Then Exit Do
Loop Until Timer >= Starttm + 20 '设定最慢20秒可搜完,看你要搜的路径大小自己看着办
List1.Visible = False '暂时关闭会快N倍
If Dir(TxtName) <> "" Then
Open TxtName For Input As #1
List1.Clear
While Not EOF(1)
Line Input #1, aa
If InStr(aa, "_BACK") = 0 Then List1.AddItem aa
Wend
Close #1
End If
List1.Visible = True
If Dir(TxtName) <> "" Then Kill TxtName
Kill "c:\SchDir.bat"
MsgBox GetTickCount - BgnTm & "毫秒 " & List1.ListCount & " 个文件夹"
End Sub
Public Function Isrunexe(ExeNm As String) As Boolean
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesslist = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & ExeNm & "'")
Isrunexe = IIf(colProcesslist.Count > 0, True, False)
Set objWMIService = Nothing
Set colProcesslist = Nothing
End Function
--------------------编程问答-------------------- 看这篇文章
http://blog.csdn.net/chenhui530/archive/2007/10/03/1810299.aspx --------------------编程问答-------------------- '补充说明
Loop Until Timer >= Starttm + 20 '设定最慢20秒可搜完,看你要搜的路径大小自己看着办
上面这个加20只是我的测试, 你可以用一个变量限制它的最长搜索时间,一般一个盘40G之内20秒能搜完. --------------------编程问答-------------------- 路过... --------------------编程问答--------------------
补充:VB , 基础类