The information in this article applies to:
- Professional and Enterprise Editions of Microsoft Visual Basic,
32-bit only, for Windows, version 4.0
SUMMARY
From Visual Basic, it is possible to use the Win32 API function
GetDiskFreeSpace to find and view the amount of free disk space on a
specified drive. The code sample below shows this in practice.
MORE INFORMATION
Sample Code
- Start a new project, Form1 is created by default.
- From the File menu, choose Remove File.
- From the Insert menu, choose Module.
- Add the following code to the Module1 code window:
Declare Function GetDiskFreeSpace Lib "kernel32" Alias _
"GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _
lpSectorsPerCluster As Long, lpBytesPerSector As Long _
_lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) _
As Long
Public Type DiskInformation
lpSectorsPerCluster As Long
lpBytesPerSector As Long
lpNumberOfFreeClusters As Long
lpTotalNumberOfClusters As Long
End Type
Sub main()
Dim info As DiskInformation
Dim lAnswer As Long
Dim lpRootPathName As String
Dim lpSectorsPerCluster As Long
Dim lpBytesPerSector As Long
Dim lpNumberOfFreeClusters As Long
Dim lpTotalNumberOfClusters As Long
Dim lBytesPerCluster As Long
Dim lNumFreeBytes As Double
Dim sString As String
lpRootPathName = "c:\"
lAnswer = GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, _
lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters)
lBytesPerCluster = lpSectorsPerCluster * lpBytesPerSector
lNumFreeBytes = lBytesPerCluster * lpNumberOfFreeClusters
sString = "Number of Free Bytes : " & lNumFreeBytes & vbCr & vbLf
sString = sString & "Number of Free Kilobytes: " & (lNumFreeBytes _
/ 1024) & "K" & vbCr & vbLf
sString = sString & "Number of Free Megabytes: " & _
Format(((lNumFreeBytes / 1024) / 1024), "0.00") & "MB"
MsgBox sString
End Sub
- Press the F5 key or choose Start from the Run menu to start the program.
You will see a message box displaying the free disk space on drive C:.
|