Здравствуйте все!
Помогите пож-та решить одну задачу: нужно выбрать из каталога все файлы с нулевым размером.
Отсюда вопрос(ы): можно ли создать такой фильтр, который поможет сделать это, или же (если это невозможно) то как можно получать из указанного каталога файлы, так сказать, по одному, то есть не прибегая к помощи entryList&entryInfoList чтобы уже потом преобразовывать имя файла в QFile и уже выяснять его размер.
Попробую объяснить почему такие сложности: папка может хранить до 100 млн. файлов и мне кажется, что если все это осядет в QStringList, то ОЗУ бедного компьютера немножко поплохеет, так как только одни указатели QStringList'a сожрут ~400Мб оперативки.
Или я неправ?
Если у кого есть советы и предложения поделитесь пожалуйста.
в любом случае придётся обходить все файлы, в общем случае ОСь не предоставляет готовых сведений.
Чтобы было менее прожорливо, лучше брать список файлов, а не список информации о файлах.
Ну а затем по имени просматривать свойства.
QStringList zeroFiles;
QDir dir("./");
QStringList allFiles = dir.entryInfoList("*.*", QDir::Files | QDir::NoSymLink);
foreach(QString f, allFiles){
if(!QFileInfo(f).size())
zeroFiles << f;
}
Спасибо, Юрий!
Вашего-то ответа мне и хотелось услышать. Однако жаль
Будем надеяться, что ОСи где будет работать программа будут часть этого списка скидывать в своп.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)