crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Добавление всех файлов из заданного каталога
Herr
  опции профиля:
сообщение 13.5.2010, 22:31
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 13.5.2010
Пользователь №: 1713

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




Репутация:   0  


Необходимо задавать в файловом диалоге каталог и на выходе получать добавление в программу всех файлов определенного типа из заданного каталога.

Как я понял, QFileDialog::getExistingDirectory возвращает лишь сам адрес каталога, а несколько файлов можно добавить только через QFileDialog::getOpenFileNames и то путем ручного выделения каждого файла.

Можете посоветовать какой-нибудь выход из этой ситуации?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 13.5.2010, 22:49
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

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




Репутация:   2  


Цитата(Herr @ 13.5.2010, 23:31) *
Необходимо задавать в файловом диалоге каталог и на выходе получать добавление в программу всех файлов определенного типа из заданного каталога.

Как я понял, QFileDialog::getExistingDirectory возвращает лишь сам адрес каталога, а несколько файлов можно добавить только через QFileDialog::getOpenFileNames и то путем ручного выделения каждого файла.

Можете посоветовать какой-нибудь выход из этой ситуации?

Реализуй свой диалог, раз ничего не подходит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 13.5.2010, 23:31
Сообщение #3


Активный участник
***

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

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




Репутация:   1  


Не кроссплатформенно есть в ВИНАПИ для поиска файлов findFirst и FindNext .
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 14.5.2010, 1:22
Сообщение #4





Гости








    


давным давно делал так:
strFrom=QFileDialog::getExistingDirectory(this,"",QApplication::applicationDirPath(),
                                                  QFileDialog::ShowDirsOnly);
<...>
QStringList findFiles(const QString &startDir)
{
    QStringList names,fileFilter;
    QDir dir(startDir);
    fileFilter << "*.txt";    

    if(ui->subDirCheckBox->isChecked()) {
        foreach(QString subDir, dir.entryList(QDir::AllDirs|QDir::NoDotAndDotDot))
            names += findFiles(startDir + "/" + subDir);
    }

    foreach(QString file,dir.entryList(fileFilter,QDir::Files))
        names += startDir + "/" + file;

    return names;
// и далее как-то так:
    foreach(QFile f, findFiles(strFrom)) {    
     <...>
    }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.5.2010, 9:24
Сообщение #5


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

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

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




Репутация:   94  


Гость_*, можно несколько компактнеезаписать:
QDir dir(QFileDialog::getExistingDirectory(...));
QDir::Filters filter = ...;
QString nameFilters = ...;
QDir::SortFlags sort = ...;
foreach(QString file, dir.entryList(nameFilters, filter, sort)){
//...
}
а вообще всё верно, тут ни чего сложного нет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Herr
  опции профиля:
сообщение 15.5.2010, 0:11
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 13.5.2010
Пользователь №: 1713

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




Репутация:   0  


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

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 15:36