In QB64 you can use a Windows API for this.
Edit:
If you use the data type _UNSIGNED _INTEGER64, you can read larger disk sizes.
_UNSIGNED LONG is for < 4 GB media.
Code: (Select All)
DECLARE DYNAMIC LIBRARY "kernel32"
function GetDiskFreeSpaceEx% alias "GetDiskFreeSpaceExA" (_
lpDirectoryName as STRING, _
lpFreeBytesAvailableToMe As _UNSIGNED LONG, _
lpTotalNumberOfBytes As _UNSIGNED LONG, _
lpTotalNumberOfFreeBytes As _UNSIGNED LONG)
END DECLARE
DIM DriveOrFolder AS STRING
DIM FreeBytesAvailableToMe AS _UNSIGNED LONG
DIM TotalBytes AS _UNSIGNED LONG
DIM FreeBytes AS _UNSIGNED LONG
DriveOrFolder = "C:\"
FetchResult = GetDiskFreeSpaceEx(DriveOrFolder, FreeBytesAvailableToMe, TotalBytes, FreeBytes)
PRINT "Path: '" + DriveOrFolder + "'"
PRINT "Path founding (1 - ok, 0 - ERROR):" + STR$(FetchResult)
PRINT "------------------------------------"
PRINT "TotalBytes: " + STR$(TotalBytes)
PRINT "FreeBytes Avilable To Me: " + STR$(FreeBytesAvailableToMe)
PRINT "FreeBytes: " + STR$(FreeBytes)
Edit:
If you use the data type _UNSIGNED _INTEGER64, you can read larger disk sizes.
_UNSIGNED LONG is for < 4 GB media.