Есть функция getFileInfo
bool getFileInfo (QDir dir, QFileInfo *tmp) {
QDirIterator it(dir, QDirIterator::Subdirectories);
while (it.hasNext()) {
*tmp = it.fileInfo();
it.next();
return true;
}
return false;
}
которая принимает путь к файлам и возвращает один файл по ссылке.
Идёт вызов функции для получения всех файлов папки
while (getFileInfo(dir1, &fileInfo)){
...
}
while (getFileInfo(dir2, &fileInfo)){
...
}
Сейчас функция уйдёт в бесконечный цикл, однако, если добавить static для QDirIterator, то нельзя будет указывать другой путь к файлам.
Как организовать нормальную работу с QDirIterator?
P.S. идеальный вариант - объявить пустой QDirIterator в классе, и как-нибудь изменять его перед
while (getFileInfo(dir1, &fileInfo)){
...
}
Можно напрямую в цикле использовать итератор. То есть вместо функции просто используйте цикл в ее теле.
Другой подход - это создать объект функции.
Например,
class GetFileInfo
{
protected:
QDirIterator it;
public:
GetFileInfo ( const QDir &dir ) : it(dir, QDirIterator::Subdirectories)
{
}
bool operator ()( QFileInfo *tmp )
{
bool success = it.hasNext();
if ( success )
{
it.next();
*tmp = it.fileInfo();
}
return success;
}
};
И использовать его как
GetFileInfo fileinfo( dir );
while ( fileInfo( &tmp ) )
{
//...
}
Можно также добавить явную функцию преобразования объекта класса в тип bool.
Тогда можно будет писать
while ( fileInfo )
{
fileInfo( &tmp );
//...
}
Так как я не имел дело с Qt, то возможно есть неточности в определении объекта функции. Тем не менее он демонстрирует подход к решению задачи.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Набор аргументов для которых необходимо найти интерполируемые значения(t1):
Доброго времени суток! Нужно перегрузить оператор + для сложение двух двумерных массивовПыталась перегрузить так, но это вызывает исключение
Подскажите библиотеку на C++ в которой реализован метод интерполяции с регулярной сетки на сетку ВороногоКак я понял нужно искать все пересечения...
Как написать программу, которая бы могла на странице входа пользователя в систему выдать какую-нибудь экранную формуТипа Hello World