| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как определить размер кластера? |
| Автор: GSV4 17.8.2006, 12:52 |
| Народ! Кто-нибудь в курсе, как на Delphi определить размер кластера конкретного диска? |
| Автор: Yanis 17.8.2006, 13:01 | ||
| http://forum.vingrad.ru/index.php?showtopic=21411&view=findpost&p=260327 В этом модуле есть функция DF_GetClusterSize. Добавлено @ 13:03 А вообще это делается так:
|
| Автор: GSV4 18.8.2006, 16:30 | ||
В том-то и дело, что функция GetDiskFreeSpace дает неправильные размеры. Я ее пробовал вызывать на двух разных винчестерах (на обоих FAT32, Windows 98 SE): Seagate Barracuda 80 Гб (диски 24 Гб + 51 Гб); Maxtor 160 Гб (20 + 30 + 30 + 40 Гб). Она мне везде дает: SectorSize = 64, ClusterSize = 512, что в итоге дает 32 768 байт. Тогда как на самом деле на некоторых дисках размер кластера у меня = 16 384 (это FAR так показывает; да и экспериментально это подтверждается). Попробуй сам вызвать эту функцию. Думаю, что и у тебя будет то же самое. |
| Автор: Yanis 18.8.2006, 17:01 |
| GSV4 А ты ремарки к функциям читаешь? |
| Автор: dumb 18.8.2006, 17:22 |
хм. странно что нет на виду нормальной функции для вычисления этих параметров. ![]() нашел вот такое http://www.codeguru.com/Cpp/W-P/system/article.php/c2885/. |
| Автор: GSV4 22.8.2006, 08:57 | ||
Читаю. Какую именно ты имеешь в виду? |
| Автор: GSV4 22.8.2006, 09:17 |
| To dumb: Спасибо за "зло"! |
| Автор: Yanis 22.8.2006, 09:24 | ||
GSV4
|
| Автор: GSV4 22.8.2006, 09:40 |
| To Yanis: А где ты ее взял? Лично я читаю файл "C:\Program Files\Common Files\Borland Shared\MSHelp\WIN32.HLP" от 22.05.2001. Там ничего про Windows 98 не сказано. Это первое. А коли ты знал, что функция GetDiskFreeSpace глючная, зачем же тогда ее привел? |