Declare Function GetFileInformationByHandle Lib "kernel32.dll" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Platforms: Win 32s, Win 95/98, Win NT
GetFileInformationByHandle determines various information about a file. This information includes the file's attributes; its creation, last-access, and last-modified dates and times; the serial number of the disk the file is on; the size of the file; the number of links to it in the file system; and the its unique numeric identifier. All of this information is put into the structure passed as lpFileInformation. The function returns 0 if an error occured, or 1 if successful.
Example:
' Display the serial number of the disk that file C:\MyProgram\datafile.txt
' is on -- in other words, we are finding the serial number of drive C:. Note that here we
' aren't interested in the other information we receive. Also note that the alternate declare
' of CreateFile must be used here since we're using Win 95/98 -- see its page for details.
Dim hfile As Long ' receives the handle to the file
Dim fileinfo As BY_HANDLE_FILE_INFORMATION ' receives info about the file
Dim hexstring As String ' will receive the hexadecimal form of the serial number
Dim retval As Long ' return value
' Get a handle to the file (note how the alternate declare is used):
hfile = CreateFileNS("C:\MyProgram\datafile.txt", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hfile = -1 Then ' if the file could not be opened
Debug.Print "Could not open the file C:\MyProgram\datafile.txt."
End ' abort the program
End If
' Display the serial number, using hexadecimal:
retval = GetFileInformationByHandle(hfile, fileinfo) ' read the information
hexstring = Hex(fileinfo.dwVolumeSerialNumber) ' get the hexadecimal value of the serial number
If Len(hexstring) < 8 Then ' if the string is less than 8 characters,
hexstring = String("0", 8 - Len(hexstring)) & hexstring ' then right-pad it with "0"s
End If
Debug.Print "The serial number of C: is "; hexstring
' Close the file:
retval = CloseHandle
See Also: GetFileAttributes, GetFileSize, GetFileTime
Category: Files
Go back to the alphabetical Function listing.
Go back to the Reference section index.
This page is copyright © 2000 Paul Kuliniewicz. Copyright Information.
Go back to the Windows API Guide home page.
E-mail: vbapi@vbapi.com Send Encrypted E-Mail
This page is at http://www.vbapi.com/ref/g/getfileinformationbyhandle.html