Функция GetDiskFreeSpace

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

GetDiskFreeSpace возвращает информацию относительно количества места на диске. Эта информация включает число секторов в каждом кластере, число байтов в каждом секторе, число свободных кластеров и общего количества кластеров. Из-за ограничений 32-разрядного типа данных целого числа, эта функция работает должным образом только с дисками с объемом меньше, чем 2 гигабайт. Другая функция GetDiskFreeSpaceEx не имеет этих ограничений.

lpRootPathName
Корневой каталог диска, например "c:\" или "a:\"
lpSectorsPerCluster
Число секторов в кластере
lpBytesPerSector
Число байт в секторе
lpNumberOfFreeClusters
Число свободных кластеров
lpTotalNumberOfClusters
Общее число кластеров
' Считаем и отображаем количество свободного места
' и общего объема диска C:
Dim secPerClus As Long  ' число секторов в кластере
Dim bytePerSec As Long  ' число байт в секторе
Dim freeClus As Long  ' число свободных кластеров
Dim totalClus As Long  ' общее число кластеров
Dim retval As Long  ' возвращаемое значение

retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus)

' Отображаем информацию
Debug.Print "Свободно:"; freeClus * secPerClus * bytePerSec; "байт"
Debug.Print "Общий объем:"; totalClus * secPerClus * bytePerSec; "байт"

Смотри также

GetDiskFreeSpaceEx

Категория

Файлы