给你一段代码,它是用API实现的速度比DIR快(用 DIR函数也可实现)
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private FiTime As FILETIME
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 255
cAlternate As String * 14
End Type
Privat Const vbKeyDot = 46
'遍历指定目录下所有文件
Public Sub SearchFileSpec(ByVal CurPath As String)
Dim FindF1 As WIN32_FIND_DATA
Dim hDndle1 As Long, Lp0 As Long
Dim FileNa As String
curpath=iif(right(curpath,1),"\",cutpath,curpath &"\")
hDndle1 = FindFirstFile(CurPath & "*", FindF1)
If hDndle1 <> -1 Then
Do
DoEvents
'添加列表项
If Asc(FindF1.cFileName) <> vbKeyDot Then
Lp0 = InStr(FindF1.cFileName, vbNullChar)
If Lp0 <> 0 Then
FileNa = Mid$(FindF1.cFileName, 1, Lp0 - 1)
Else
FileNa = FindF1.cFileName
End If
‘文件已得到添加你想处理的代码
endif
Loop While FindNextFile(hDndle1, FindF1)
Call FindClose(hDndle1)
End If
End Sub