Функция GetDiskFreeSpaceEx

Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, _
    lpFreeBytesAvailableToCaller As Currency, _
	lpTotalNumberOfBytes As Currency, _
	lpTotalNumberOfFreeBytes As Currency) As Long

GetDiskFreeSpaceEx возвращает информацию относительно количества места на диске. Эта информация включает в себя количество свободного места для текущего пользователя, общий объем диска и количество свободного места на диске (все байтах)

lpDirectoryName
Имя директории на диске, информацию относительно которой нужно узнать. Это может быть имя корневой директории или любая другая директория. Если аргумент установлен в Null, то возвращается информация о текущем диске
lpFreeBytesAvailableToCaller
Безнаковое 64-разрядное целое число, содержащее количество свободного места в байтах для текущего пользователя
lpTotalNumberOfBytes
Безнаковое 64-разрядное целое число, содержащее объем диска в байтах
lpTotalNumberOfFreeBytes
Безнаковое 64-разрядное целое число, содержащее общее количество свободного места в байтах

Пример

' Считаем и отображаем количество свободного
' места и общего объема диска C:
Dim BytesFreeToCalller As Currency
Dim TotalBytes As Currency
Dim TotalFreeBytes As Currency
Dim TotalBytesUsed As Currency
    
Const RootPathName = "C:\"
' Извлекаем информацию о диске
Call GetDiskFreeSpaceEx(RootPathName, BytesFreeToCalller, TotalBytes, TotalFreeBytes)
' выводим результат, умножая
' возвращаемое значение на 10000,
' чтобы сместить десятичную точку, возвращаемую
' типом Currency вправо
Me.AutoRedraw = True
Print " Общий объем диска:", Format$(TotalBytes * 10000, "###,###,###,##0") & " байт"
Print " Свободно на диске:", Format$(TotalFreeBytes * 10000, "###,###,###,##0") & " байт"
Print " Доступно на диске:", Format$(BytesFreeToCalller * 10000, "###,###,###,##0") & " байт"
Print " Занято :", Format$((TotalBytes - TotalFreeBytes) * 10000, "###,###,###,##0") & " байт"

Смотри также

GetDiskFreeSpace

Категория

Файлы