Вопрос
Как с помощью СИ спросить у виндоса сколько места свободно, а сколько Нет?
Ответ
Есть две функции:
GetDiskFreeSpace и GetDiskFreeSpaceEx
первая выдает всякие там Кластеры,Сектора, а оно надо???(ну может кому и надо:)
Поэтому:
GetDiskFreeSpaceEx(CTSTR *DirectoryName, // directory name
ULARGE_INTEGER *lpFreeBytesAvailable, // bytes available to caller
ULARGE_INTEGER *lpTotalNumberOfBytes, // bytes on disk
ULARGE_INTEGER *lpTotalNumberOfFreeBytes // free bytes on disk
)
lpDirectoryName — имя директории, или сетевой путь, где смотрится
свободное место.( конечно, место смотрится на диске, где лежит директория)
lpFreeBytesAvailable — свободное место для того, кто запрашивает(если
введены квоты в Вин2000\ХР).
lpTotalNumberOfBytes — свободное место на диске.
lpTotalNumberOfFreeBytes — все место на диске.
Пример:
#include<windows.h>
#include<stdio.h>
void main(void)
{
ULARGE_INTEGER FreeBytes,TotalBytes,FreeBytesToCaller;
GetDiskFreeSpaceEx("C:\\",&FreeBytesToCaller,&TotalBytes,&FreeBytes);
printf("%I64i\n%I64i\n%I64i\n",TotalBytes,FreeBytesToCaller,FreeBytes);
};
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация