Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QDir&QFile
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Алексей
Здравствуйте все!

Помогите пож-та решить одну задачу: нужно выбрать из каталога все файлы с нулевым размером.

Отсюда вопрос(ы): можно ли создать такой фильтр, который поможет сделать это, или же (если это невозможно) то как можно получать из указанного каталога файлы, так сказать, по одному, то есть не прибегая к помощи entryList&entryInfoList чтобы уже потом преобразовывать имя файла в QFile и уже выяснять его размер.

Попробую объяснить почему такие сложности: папка может хранить до 100 млн. файлов и мне кажется, что если все это осядет в QStringList, то ОЗУ бедного компьютера немножко поплохеет, так как только одни указатели QStringList'a сожрут ~400Мб оперативки.

Или я неправ?

Если у кого есть советы и предложения поделитесь пожалуйста.
Litkevich Yuriy
в любом случае придётся обходить все файлы, в общем случае ОСь не предоставляет готовых сведений.
Чтобы было менее прожорливо, лучше брать список файлов, а не список информации о файлах.
Ну а затем по имени просматривать свойства.
QStringList zeroFiles;
QDir dir("./");
QStringList allFiles = dir.entryInfoList("*.*", QDir::Files | QDir::NoSymLink);
foreach(QString f, allFiles){
    if(!QFileInfo(f).size())
        zeroFiles << f;
}
Алексей
Спасибо, Юрий!

Вашего-то ответа мне и хотелось услышать. Однако жаль :(
Будем надеяться, что ОСи где будет работать программа будут часть этого списка скидывать в своп.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.