
The &H10000000 part confused me, think I got it now!

Scott
------------------
Scott
mailto:[email protected][email protected]</A>
Function = l_dwSizeHigh * &H100000000 + l_dwSizeLow
FUNCTION GetSizeOfFile(FileSpec AS STRING) AS DWORD LOCAL l_zFileSpec AS ASCIIZ * 255 LOCAL l_hFindFile AS DWORD LOCAL l_dwSize AS DWORD LOCAL l_dwSizeLow AS DWORD LOCAL l_dwSizeHigh AS DWORD l_zFileSpec = FileSpec l_hFindFile = CreateFile(BYVAL VARPTR(l_zFileSpec), _ %GENERIC_READ, _ %FILE_SHARE_READ, _ BYVAL %NULL, _ %OPEN_EXISTING, _ %FILE_FLAG_NO_BUFFERING OR %FILE_FLAG_OVERLAPPED, _ BYVAL %NULL) IF (l_hFindFile = %INVALID_HANDLE_VALUE) THEN MSGBOX "Failed to open " + FileSpec + $CrLf + $CrLf +_ "ERROR " + STR$(GetLastError()) FUNCTION = -1 EXIT FUNCTION END IF l_dwSizeLow = GetFileSize(l_hFindFile, BYVAL VARPTR(l_dwSizeHigh)) IF ((l_dwSizeLow = &H0FFFFFFFF) AND (GetLastError() <> %NO_ERROR)) THEN MSGBOX "GetFileSize failed, error " + STR$(GetLastError()) FUNCTION = -1 EXIT FUNCTION END IF CloseHandle l_hFindFile FUNCTION = MAKDWD(l_dwSizeLow, l_dwSizeHigh) END FUNCTION
#Compile Exe #Register None #Dim All #Include "WIN32API.INC" Function GetSizeOfFile(FileSpec As Asciiz) As Double Local FindData As WIN32_FIND_DATA, l_hFindFile As Long l_hFindFile = FindFirstFile(FileSpec, FindData) If l_hFindFile = %INVALID_HANDLE_VALUE Then Function = -1 Else _ Function = FindData.nFileSizeHigh * &H100000000 + FindData.nFileSizeLow: _ FindClose l_hFindFile End Function Function PbMain MsgBox Str$(GetSizeOfFile("C:\IO.SYS")) End Function
Function GetSizeOfFile(FileSpec As String) As Long Local l_zFileSpec As Asciiz * 255 Local l_hFindFile As Long Local lpFileSizeHigh As Long Local l_Result As Long Local finddata As WIN32_FIND_DATA l_zFileSpec = FileSpec finddata.dwFileAttributes = %FILE_ATTRIBUTE_DIRECTORY 'Or %FILE_ATTRIBUTE_NORMAL Or %FILE_ATTRIBUTE_ARCHIVE Or %FILE_ATTRIBUTE_READONLY l_hFindFile = FindFirstFile(l_zFileSpec, finddata) If l_hFindFile = %INVALID_HANDLE_VALUE Then Function = %INVALID_HANDLE_VALUE 'Check for it when pulling file size from main program otherwise wrong file size!! MsgBox "Invalid File Handle",%MB_ICONSTOP,CCS Exit Function End If l_Result = GetFileSize(ByVal l_hFindFile, lpFileSizeHigh) Function = lpFileSizeHigh FindClose l_hFindFile Exit Function 'Of course this works: l_hFindFile = FreeFile Open filespec For Input As #l_hFindFile Function = Lof(l_hFindFile) Close l_hFindFile End Function
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, and to analyze site activity. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Leave a comment: