1,486
社区成员
发帖
与我相关
我的任务
分享
tFindData.cFileName = ""
lHandle = FindFirstFile(strPathName & "\*.*", tFindData)
If lHandle = 0 Then
Exit Sub
End If
strFileName = fDelInvaildChr(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName & "\" & strFileName
End If
Else
objList.AddItem strPathName & "\" & strFileName
End If
'nFileSizeHigh = tFindData.nFileSizeHigh
'nFileSizeLow = tFindData.nFileSizeLow
'AllFileSize = nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
Do While True
tFindData.cFileName = ""
If FindNextFile(lHandle, tFindData) = 0 Then
FindClose (lHandle)
Exit Do
Else
strFileName = fDelInvaildChr(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName & "\" & strFileName
' AllFileSize = AllFileSize + nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
End If
Else
objList.AddItem strPathName & "\" & strFileName
' AllFileSize = AllFileSize + nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
End If
End If
Loop
Option Explicit
'文件查找类型
Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
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 * 260 ' MAX_PATH = 260
cAlternate As String * 14
End Type
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile&) As Long
Public Sub Main()
'这里是程序入口
Call Test
End Sub
Private Sub Test()
Dim tFindData As WIN32_FIND_DATA
Dim lHandle&, strFileName$
tFindData.cFileName = ""
lHandle = FindFirstFile("X:\Temp\*.rar", tFindData)
If lHandle = 0 Then Exit Sub
' strFileName = fDelInvaildChr(tFindData.cFileName)
' If tFindData.dwFileAttributes = &H10 Then
' If strFileName <> "." And strFileName <> ".." Then
' iIndex = iIndex + 1
' sSubDir(iIndex) = strPathName & "\" & strFileName
' End If
' Else
' objList.AddItem strPathName & "\" & strFileName
' End If
'nFileSizeHigh = tFindData.nFileSizeHigh
'nFileSizeLow = tFindData.nFileSizeLow
Debug.Print "Hig 1 = "; tFindData.nFileSizeHigh
Debug.Print "Low 1 = "; tFindData.nFileSizeLow
Call FindNextFile(lHandle, tFindData)
Debug.Print "Hig 2 = "; tFindData.nFileSizeHigh
Debug.Print "Low 2 = "; tFindData.nFileSizeLow
Call FindClose(lHandle)
' AllFileSize = nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
' Do While True
' tFindData.cFileName = ""
' If FindNextFile(lHandle, tFindData) = 0 Then
' FindClose (lHandle)
' Exit Do
' Else
' strFileName = fDelInvaildChr(tFindData.cFileName)
' If tFindData.dwFileAttributes = &H10 Then
' If strFileName <> "." And strFileName <> ".." Then
' iIndex = iIndex + 1
' sSubDir(iIndex) = strPathName & "\" & strFileName
' AllFileSize = AllFileSize + nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
' End If
' Else
' objList.AddItem strPathName & "\" & strFileName
' AllFileSize = AllFileSize + nFileSizeHigh * (MAXDWORD + 1) + nFileSizeLow
' End If
' End If
' Loop
End Sub