crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Проход и получение имен и расположения файлов из заданного каталога
epishev
  опции профиля:
сообщение 24.3.2011, 10:04
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


Всем привет!
Есть такая задача... нужно получить каталоги; имена и расположение всех файлов определенного типа (например gif, jpg) из заданного каталога....
Ну и засунуть это все в Tree Widget.

Заранее большое спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 24.3.2011, 11:25
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


QDir::entryList или QDir::entryInfoList.

для того чтобы отловить gif и jpg надо :
QStringList filter;
filter<<"*.jpg"<<"*.gif";

QDir(твоя директория).entryList(filter);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 24.3.2011, 14:17
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


ernie, а пройти теперь как этот список QDir::entryList?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 24.3.2011, 14:27
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


    QDir *dir = new QDir("/media/data/Additional/Pictures");
    QStringList fileList,filter;
    filter<<"*.jpg"<<"*.gif";
    fileList = dir->entryList(filter);


А если нужны не просто названия файлов, а полные пути, размер и прочая информация, тогда:
QDir *dir = new QDir("/media/data/Additional/Pictures");
QFileInfoList fileList;
QStringList filter;
filter<<"*.jpg"<<"*.gif";
fileList = dir->entryInfoList(filter);


Сообщение отредактировал RazrFalcon - 24.3.2011, 14:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 24.3.2011, 14:40
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


Цитата(RazrFalcon @ 24.3.2011, 14:27) *
А если нужны не просто названия файлов, а полные пути, размер и прочая информация, тогда:


А как он пиши эти данные в строку??

путь файла1, рамзмер файла1, ....., путь файла2, рамзмер файла2, .....,

или как будет в строку fileList записываться???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 24.3.2011, 14:48
Сообщение #6


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


fileList - не строка, а QStringList, набор строк.

Пример:
добавьте:
#include <QtDebug>

а затем:
    QDir *dir = new QDir("путь к папке с изображениями");
    QStringList filter;
    QFileInfoList fileList;
    filter<<"*.jpg"<<"*.gif";
    fileList = dir->entryInfoList(filter);
    qDebug()<<fileList.at(0).absoluteFilePath();


Сообщение отредактировал RazrFalcon - 24.3.2011, 14:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 25.3.2011, 10:38
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


RazrFalcon,
пишу:


QFileInfoList fileList; объявил в классе

но fileList пустой:


хотя:


Что я не нак делаю???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 25.3.2011, 13:41
Сообщение #8


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


А картинка не png случайно?

Еще
qDebug()<<fileList.at(0).absoluteFilePath();
выведет 1-й файл

Лучше попробовать так
for (int i=0; i<fileList.count(); i++)
qDebug()<<fileList.at(i).absoluteFilePath();


PS: зачем дебаг, если оно в консоль выводит?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 25.3.2011, 14:11
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


Цитата(RazrFalcon @ 25.3.2011, 13:41) *
А картинка не png случайно?


Ну я баклан :pardon:

Еще раз большое спасибо за помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
epishev
  опции профиля:
сообщение 28.3.2011, 9:18
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 23.3.2011
Пользователь №: 2533

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




Репутация:   0  


RazrFalcon
Осталась только одна проблема....

тут все понятно

QDir *dir = new QDir(str);
QStringList filter;
filter<<"*.jpg"<<"*.gif"<<"*.png";
fileList = dir->entryInfoList(filter);


но проверяет только каталог str,
как проверить на наличие картинок вложенные каталоги??

Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 1.12.2024, 22:32