Функция GetDiskFreeSpace

Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Платформа

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

При возникновении ошибки,функция возвращает 0 (используйте GetLastError для определения кода ошибки). При успешном случае,функция возвращает значение,отличное от нуля

Параметры

lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpSectorsPerCluster
число секторов в кластере.
lpBytesPerSector
число байт в секторе.
lpNumberOfFreeClusters
число свободных кластеров Windows 2000: Это может быть более низкое чем фактическое значение.
lpTotalNumberOfClusters
общее число кластеров. Windows 2000: Это может быть более низкое чем фактическое значение.

Пример

' Считаем и отображаем количество свободного места и общего объема диска 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
Категория
Файлы

В начало.