Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, _ lpFreeBytesAvailableToCaller As Currency, _ lpTotalNumberOfBytes As Currency, _ lpTotalNumberOfFreeBytes As Currency) As Long
GetDiskFreeSpaceEx возвращает информацию относительно количества места на диске. Эта информация включает в себя количество свободного места для текущего пользователя, общий объем диска и количество свободного места на диске (все байтах)
' Считаем и отображаем количество свободного ' места и общего объема диска 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") & " байт"