crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDir&QFile
Гость_Алексей_*
сообщение 1.6.2010, 15:07
Сообщение #1





Гости








    


Здравствуйте все!

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

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

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

Или я неправ?

Если у кого есть советы и предложения поделитесь пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.6.2010, 16:11
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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





Гости








    


Спасибо, Юрий!

Вашего-то ответа мне и хотелось услышать. Однако жаль :(
Будем надеяться, что ОСи где будет работать программа будут часть этого списка скидывать в своп.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 6.10.2022, 8:16