| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Неправильный объем при рекурсивном подсчете |
| Автор: Тутанхамец 24.3.2006, 07:32 | ||
Уважаемые! Вот у меня есть такой код, с которым я уже рискнул вчера к вам обратиться (и не напрасно). Эта функция находит все файлы, но сколько места они занимают - считает неправильно. Для папки весом в 4 гига выдает 161 мегабайт с копейками... Почему так?
Буду очень признателен. |
| Автор: Dian 24.3.2006, 07:43 |
| А чему изначально равно totalsize? |
| Автор: Тутанхамец 24.3.2006, 07:47 |
| Нулю. Оно обнуляется при создании класса TAC. |
| Автор: Snowy 24.3.2006, 09:27 |
| А оно у тебя случайно не integer? В интегер больше 4 гигового значения не засунешь... Нужно int64 Добавлено @ 09:28 P.S. Кстати, ты считаешь общий объем файлов, а не место, которое они занимают на диске... |
| Автор: Guedda 24.3.2006, 09:48 | ||
| Зачем Cradinal-ить? Все гораздо проще делается... У меня такая схема примерно стоит:
Все прекрасно работает. У меня 5-гиговую папку проверила. И все ОК. |
| Автор: Тутанхамец 24.3.2006, 10:10 |
| Насчет объема, а не места на диске - это я понимаю. Так и надо. Насчет cardinal-то я сообразил. Не знаю, зачем я кардиналю, случайно вышло Добавлено @ 10:19 Опс! Ошибочка. Я думал, что cardinal - это беззнаковый int64. Учел. Totalsize:int64. Да! Это была ошибка переполнения. Он доходил до предельного значения, а потом результат шел неверный. Всем огромное спасибо! |