Вопрос № 36292: Как определить размер логического диска (тома)?
Беру GetDiskFreeSpace, перемножаю все кластеры на секторы и на размеры кластера, получается чтото не то.
При GetDiskFreeSpaceEx появляется переполнение буфера.
Подозреваю, что нужно както яв...
Вопрос № 36.292
Как определить размер логического диска (тома)?
Беру GetDiskFreeSpace, перемножаю все кластеры на секторы и на размеры кластера, получается чтото не то.
При GetDiskFreeSpaceEx появляется переполнение буфера.
Подозреваю, что нужно както явно задавать типы данных при перемножении (ставить большие вроде __int64), но где и как пока не выяснил.
Мсожет ктото решил уже эту задачу?
PS/ Расчет делается на большие диски (например, больше 100 мб).
Отвечает: X-MAN
Здравствуйте, Белкин Алексей!
Существует функция _getdiskfree()
См. приложение
Первый параметр этой функции - номер логического диска: a -1, c - 3, и т.д.
Приложение:
Ответ отправил: X-MAN (статус: 3-ий класс)
Отправлен: 27.02.2006, 02:42 Оценка за ответ: 5 Комментарий оценки: работает ! правда мне надо не через номер, а через букву, но уже разобрался через тот же __int64 в GetDiskFreeSpace.
Отвечает: Morgion
Здравствуйте, Белкин Алексей!
Преобразуй в double и всё заработает. См приложение
Приложение:
Ответ отправил: Morgion (статус: 9-ый класс)
Отправлен: 27.02.2006, 10:25 Оценка за ответ: 4 Комментарий оценки: Твой код выдавал такое: Свободное - 4.491953e+002 Всего - 1.075633e+010 Что за странный формат? Кароче, видно double тоже мало В ULONGLONG влезло. Задача решена.