Статья: Работа с некоторыми Win API функциями (информация о системе)
4) GetDiskFreeSpaceEx
Функция GetDiskFreeSpaceEx выдаёт информацию о доступном месте на диске.
BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName, // имя диска(директории) [in]
PULARGE_INTEGER lpFreeBytesAvailable, // доступно для использования(байт) [out]
PULARGE_INTEGER lpTotalNumberOfBytes, // максимальный объём( в байтах ) [out]
PULARGE_INTEGER lpTotalNumberOfFreeBytes // свободно на диске( в байтах ) [out]
);
Возвращаемое значение:
Если функция вызвана правильно, то она возвращает не нулевое значение(TRUE).
Если функция вызвана не правильно, то она возвращает 0(FALSE).
Пример:
DWORD FreeBytesAvailable;
DWORD TotalNumberOfBytes;
DWORD TotalNumberOfFreeBytes;
BOOL GetDiskFreeSpaceFlag = GetDiskFreeSpaceEx(
"c:\", // directory name
(PULARGE_INTEGER)&FreeBytesAvailable, // bytes available to caller
(PULARGE_INTEGER)&TotalNumberOfBytes, // bytes on disk
(PULARGE_INTEGER)&TotalNumberOfFreeBytes // free bytes on disk
);
if(GetDiskFreeSpaceFlag != 0)
{
cout << " Total Number Of Free Bytes = " << (unsigned long)TotalNumberOfFreeBytes
<< "( " << double(unsigned long(TotalNumberOfFreeBytes))/1024/1000
<< " Mb )" << endl;
cout << " Total Number Of Bytes = " << (unsigned long)TotalNumberOfBytes
<< "( " << double(unsigned long(TotalNumberOfBytes))/1024/1000
<< " Mb )" << endl;