crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Рекурсивный поиск файлов
RazrFalcon
  опции профиля:
сообщение 15.7.2011, 9:45
Сообщение #1


Zombie Mod
*****

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

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




Репутация:   212  


Как реализовать?
Через QDirInterator не выходит, так как он вечно теряет 1-2 файла. То есть он и ВООБЩЕ не видит.
Какие есть предложения?
PS:
QFileInfoList QDir::entryInfoList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const
Не рекурсивно ищет!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 15.7.2011, 9:50
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


а саму функцию то покажи ) Которая у тебя неправильно работает то есть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 15.7.2011, 9:57
Сообщение #3


Zombie Mod
*****

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

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




Репутация:   212  


QDirIterator dirit("Path", QDir::Dirs | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
while (dirit.hasNext()) {
  qDebug()<<dirit.filePath();
dirit.next();
}
Вывод:
"" 
"/media/data/temp/1"
"/media/data/temp/3"

$ ls
1  2  3


Как я и говорил, всегда один файл/папку не замечает.

Сообщение отредактировал RazrFalcon - 15.7.2011, 9:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 15.7.2011, 10:12
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


вот так нормально вывелось (строки местами поменяй)


        dirit.next();
        qDebug()<<dirit.filePath();


как бы сразу после выполнения конструктора итератор ещё никуда не указывает. А next() устанавливает на первый элемент
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 15.7.2011, 10:20
Сообщение #5


Zombie Mod
*****

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

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




Репутация:   212  




Так вот где собака зарыта! Спасибо.
PS: В тех примерах где я нашел сам QDirIterator, next() всегда был в конце =/
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 15.7.2011, 10:23
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


а тебя не настораживало то, что первым элементом выводится пустая строка ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 15.7.2011, 11:32
Сообщение #7


Zombie Mod
*****

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

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




Репутация:   212  


Не особо :lol:
Я просто только перед тем как постить ее заметил, так как до этого QDebug() не пробовал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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