Название: Добавление всех файлов из заданного каталога Отправлено: Herr от Май 13, 2010, 22:40 Необходимо задавать в файловом диалоге каталог и на выходе получать добавление в программу всех файлов определенного типа из заданного каталога.
Как я понял, QFileDialog::getExistingDirectory возвращает лишь сам адрес каталога, а несколько файлов можно добавить только через QFileDialog::getOpenFileNames и то путем ручного выделения каждого файла. Можете посоветовать выход из этой ситуации? Название: Re: Добавление всех файлов из заданного каталога Отправлено: nixman05 от Май 14, 2010, 00:00 Можно попробовать реализовать через QFileSystemModel http://doc.qt.nokia.com/4.6/qfilesystemmodel.html (http://doc.qt.nokia.com/4.6/qfilesystemmodel.html)
например Код
затем, для того, чтобы получить имя файла используется fileName ( const QModelIndex & index ) const (или filePath( const QModelIndex & index) для получения полного пути) также можно устанавливать фильтры при помощи setFilter и setNameFilter Название: Re: Добавление всех файлов из заданного каталога Отправлено: garryHotDog от Май 14, 2010, 06:07 Кол-во файлов можно получить с помощью QDir:
Цитировать QStringList entryList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const но это получение файлов\директорий в текущей директории, без поддиректорий....более сложный и рекурсивный вариант (вхождение в поддиректории):Код Использование: Код
Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 14, 2010, 11:07 Кол-во файлов можно получить с помощью QDir: Не только количество, но и названия файлов. но это получение файлов\директорий в текущей директории, без поддиректорий....более сложный и рекурсивный вариант (вхождение в поддиректории): Для этого существует QDirIterator Название: Re: Добавление всех файлов из заданного каталога Отправлено: garryHotDog от Май 14, 2010, 12:00 Цитировать Не только количество, но и названия файлов. для этого есть QFileInfoList !!! это список файлов с доп. инфой (читай в ассисте)Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 14, 2010, 13:46 Ты хочешь сказать, что QStringList entryList() не возвращает список файлов?
Название: Re: Добавление всех файлов из заданного каталога Отправлено: garryHotDog от Май 14, 2010, 16:39 Цитировать Ты хочешь сказать, что QStringList entryList() не возвращает список файлов? с чего ты это решил??? с какой фразы???в моем примере я просто использую tmpFileList=dir.entryInfoList(QDir::Files|QDir::Readable,QDir::NoSort), получаю список файлов,но элементы списка не просто имена файлов,а QFileInfo!!! Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 14, 2010, 18:37 с чего ты это решил??? с какой фразы??? Цитировать Не только количество, но и названия файлов. для этого есть QFileInfoList !!! это список файлов с доп. инфой (читай в ассисте)В моем понимании, это означает, что метод entryList делает не совсем то, что я написал или метод QFileInfoList эффективнее. Название: Re: Добавление всех файлов из заданного каталога Отправлено: garryHotDog от Май 14, 2010, 20:31 Цитировать В моем понимании, это означает, что метод entryList делает не совсем то, что я написал или метод QFileInfoList эффективнее. Цитирую для тебя ассист: Цитировать QStringList entryList ( Filters filters = NoFilter, SortFlags sort = NoSort ) const Цитировать QFileInfoList entryInfoList ( Filters filters = NoFilter, SortFlags sort = NoSort ) const Цитировать typedef QFileInfoList поясню - entryList вернем тебе просто список имен файлов в директории.Synonym for QList<QFileInfo>. entryInfoList - вернем тебе список элементов QFileInfo, где есть и имя и размер и т.д...... более эффективным будет entryList !!!! Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 14, 2010, 20:39 Ну ик чему был тогда этот комментарий?
Цитировать Не только количество, но и названия файлов. для этого есть QFileInfoList !!! это список файлов с доп. инфой (читай в ассисте)Название: Re: Добавление всех файлов из заданного каталога Отправлено: garryHotDog от Май 14, 2010, 21:06 МОЖНО ПОЛУЧИТЬ ИМЕНА,КОЛИЧЕСТВО И Т.Д.
я думаю автор топика понял как делать!? Название: Re: Добавление всех файлов из заданного каталога Отправлено: Herr от Май 15, 2010, 00:08 Да, спасибо!
Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 15, 2010, 00:48 Вот как раз т.д автор топика не просил. И не надо на меня кричать.
Название: Re: Добавление всех файлов из заданного каталога Отправлено: ритт от Май 15, 2010, 17:06 Цитировать В моем понимании, это означает, что метод entryList делает не совсем то, что я написал или метод QFileInfoList эффективнее. Цитирую для тебя ассист: Цитировать QStringList entryList ( Filters filters = NoFilter, SortFlags sort = NoSort ) const Цитировать QFileInfoList entryInfoList ( Filters filters = NoFilter, SortFlags sort = NoSort ) const Цитировать typedef QFileInfoList поясню - entryList вернем тебе просто список имен файлов в директории.Synonym for QList<QFileInfo>. entryInfoList - вернем тебе список элементов QFileInfo, где есть и имя и размер и т.д...... более эффективным будет entryList !!!! Название: Re: Добавление всех файлов из заданного каталога Отправлено: Kolobok от Май 15, 2010, 19:26 более эффективным будет entryInfoList(), но памяти сожрёт чуть больше. У меня по скорости они одинаковы. |