Purpose |
The FindClose function retrieves the size, in bytes, of the specified file. |
Library | Transcribed by | Date of page | Updated on |
Kernel32.dll | J.Paris | 25.04.06 |
Restrictions on use |
none |
Declare 32-bit |
Declare Function GetFileSize Lib "kernel32.dll" ( ByVal hFile As Integer, lpFileSizeHigh As Integer ) As Integer |
Required Type definition |
Parameters | |
hFile
lpFileSizeHigh |
Specifies an open handle of the file whose size is being returned. The handle must have been created with either GENERIC_READ or GENERIC_WRITE access to the file
Points to the variable where the high-order word of the file size is returned. This parameter can be NULL if the application does not require the high-order word. |
Return value |
If the function succeeds, the return
value is the low-order doubleword of the file size, and, if lpFileSizeHigh
is non-NULL, the function puts the high-order doubleword of the file size
into the variable pointed to by that parameter. |
Example |
Declare Function GetFileSize Lib "kernel32.dll" ( ByVal hFile As Integer, lpFileSizeHigh As Integer ) As Integer Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" ( ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer ) As Integer Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Integer) As Integer Declare function filesizeget(byval afile as string, highorder as integer, loworder as integer) as logical Declare sub main '========================================== Sub main '========================================== Dim afile as string Dim ret as logical Dim H_B, L_B as integer afile=FileOpenDlg("","","*.*","Select file to 'size up' in bytes") if afile="" then exit sub end if ret=filesizeget(afile,H_B,L_B) if not ret then Note "Could not open file "+afile else If H_B = 0 Then Note afile+chr$(10)+chr$(10)+ "File size: "+ str$(L_B)+ " bytes" Else Note afile+chr$(10)+chr$(10)+"File size: "+str$(H_B)+ " + * 2^32 + "+ str$(L_B)+ " bytes (in base-10)" End If end if end sub '========================================== function filesizeget(byval afile as string, highorder as integer, loworder as integer) as logical '========================================== Dim hndlfile As Integer Dim sattrib as SECURITY_ATTRIBUTES Dim retval as integer hndlfile = CreateFile(afile, GENERIC_READ, FILE_SHARE_READ, sattrib, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0) If hndlfile = -1 Then filesizeget=0 exit function ' abort the program End If highorder = 0 loworder = GetFileSize(hndlfile, highorder) filesizeget=1 retval = CloseHandle (hndlfile) end function |
Comments |
Main handles double integer values returned by function as strings. |
See also |
|