Option Explicit
Public Const MAX_PATH As Long = 260
Public Const INVALID_HANDLE_VALUE As Long = -1
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public 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 * MAX_PATH
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 FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Public Function fcnFileSize(TargetFile As String) As Long
On Local Error Resume Next
Dim WFD As WIN32_FIND_DATA
Dim hFile As Long
hFile = FindFirstFile(TargetFile, WFD)
If hFile <> INVALID_HANDLE_VALUE Then
fcnFileSize = WFD.nFileSizeLow
End If
Call FindClose(hFile)
End Function