Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как настроить Progress Bar


Автор: Riddik 21.9.2009, 14:32
Можно ли как-нибудь настроить прогресс_бар для корректного отображения процесса обхода всех файлов на диске в процентном соотношении?

Например, для этого узнать, сколько всего файлов на диске - как это можно сделать?

Автор: jonie 21.9.2009, 14:49
если драйвер fs не выдает общее количество inide-ов, которое есть на FS, то как же вы хотите получить проценты ?
Думаю что это невозможно без "хакерских методов" (читай не очень законных)....

Прогресс бар имеет смысл делать когда ты знаешь сколько у тебя файлов, и делаешь с ними что-то (например конвертируешь картинки в другой формат). Тогда ты сначала получаешь список чего конвертировать и далее у тебя будет количество....


хотя посмотри вот тут сорцы http://www.locate32.net/
прожка вроде показывает проценты при сканировании... потом нам расскажешь что да как 8)

Автор: Andrey44 21.9.2009, 14:50
Можно не по количеству файлов, а по их весу.
Узнаешь сколько метров занято на диске, потом в процессе поиска файлов суммируешь их вес и вычисляешь проценты.
И устанавливаешь прогресс.

Автор: jonie 21.9.2009, 15:01
Andrey44, тут есть много но... во первых не до каждого файла вы можете достучаться чтобы посмотреть его размер, кроме того надо учитывать softlink и hardlink-и .... но это, конечно, лучше чем ничего

Автор: Andrey44 21.9.2009, 15:11
Понятное дело что это будет далеко не точное суммирование.
Но примерное время и проценты можно узнать

Автор: Riddik 21.9.2009, 15:16
Сорцов на 7 мегабайт в архиве.
Распаковал - 28.
Если в среднем по 20 байт на одну строку, то это  1 468 000 строк кода.  smile 
Шутите?

В любом случае, не могу себе сейчас позволить разбираться в таких сорцах.

Насчёт размера тоже не очень подойте.
Наверное, придётся просто оставить бегать прогресс бар туда-сюда.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)