Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QDirIterator и сортировка
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
RazrFalcon
Пишу небольшой тегэдитор, и для рекурсивной загрузки файлов использую QDirIterator.
Проблема в том, что файлы он добавляет по кривому.
Пример(куча разный, с разными названиями и тд.):
Раскрывающийся текст
"/media/data/Music Temp/Детский академический хор Млада (г. Пермь) - Enjoy The Silence (Depeche Mode cover).mp3"
"/media/data/Music Temp/Helalyn Flowers - Never Enough - Stitches Of Eden2.flac"
"/media/data/Music Temp/Nalepa.mp3"
"/media/data/Music Temp/04 - Sitting On The Moon (Acretongue rmx).flac"
"/media/data/Music Temp/04 - Stream of Consciousness.mp3"
"/media/data/Music Temp/06 - Hybrid Moments.flac"
"/media/data/Music Temp/Toki Tsukasadoru Juuni no Meiyaku.flac"
"/media/data/Music Temp/01 - Emery - The Cheval Glass.flac"
"/media/data/Music Temp/03 - Emiliana Torrini - White Rabbit.flac"
"/media/data/Music Temp/13 - Coming Closer (feat. Takura).flac"
"/media/data/Music Temp/1.mp3"
"/media/data/Music Temp/hi.mp3"
"/media/data/Music Temp/Poets of the Fall - Carnival of Rust - Alchemy Vol.1 (CD).flac"
"/media/data/Music Temp/01 - Emily Browning - Sweet Dreams (are made of this).flac"
"/media/data/Music Temp/30 Seconds To Mars - A Beautiful Lie - A Beautiful Lie.flac"
Как не сложно заметить, он добавляет их как придется, то есть вообще рендомно.

К примеру ls:
Раскрывающийся текст
$ ls
01 - Emery - The Cheval Glass.flac
01 - Emily Browning - Sweet Dreams (are made of this).flac
01 Oxygen (Album Version).mp3
03 - Emiliana Torrini - White Rabbit.flac
04 - Sitting On The Moon (Acretongue rmx).flac
04 - Stream of Consciousness.mp3
06 - Hybrid Moments.flac
13 - Coming Closer (feat. Takura).flac
1.mp3
30 Seconds To Mars - A Beautiful Lie - A Beautiful Lie.flac
Helalyn Flowers - Never Enough - Stitches Of Eden2.flac
hi.mp3
Nalepa.mp3
Poets of the Fall - Carnival of Rust - Alchemy Vol.1 (CD).flac
Toki Tsukasadoru Juuni no Meiyaku.flac
Детский академический хор Млада (г. Пермь) - Enjoy The Silence (Depeche Mode cover).mp3

Я конечно могу сам отсортировать, но может есть какой то более автоматический способ?
Litkevich Yuriy
Цитата(RazrFalcon @ 2.7.2011, 18:19) *
он добавляет их как придется, то есть вообще рендомно.
по идее он их просто не сортирует, а выдаёт в том порядке, в котором они занесены с писок файлов самой ФС.

Сортировку поддерживает только QDir::entryList(), т.к. он сначала получает весь список, а потом его сортирует.
RazrFalcon
Ах вот как... ясно.
То есть нужно что то в духе:
  QFileInfoList allFiles;
  QDirIterator dirit("folder path",QDir::AllDirs,QDirIterator::Subdirectories);
  while (dirit.hasNext()) {
    if (QFileInfo(dirit.filePath()).isDir()) {
      allFiles.append(QDir(dirit.filePath()).entryInfoList());
    }
    dirit.next();
  }
Только не пойму как избавится от "." и ".."

Ну в принципе я решил немного другим путем, так как у меня таблица, я просто сделал:
table->sortByColumn(0,Qt::AscendingOrder);
table->setCurrentIndex(table->model()->index(0,0));
Что бы выделяло первую строку всегда.
Litkevich Yuriy
Цитата(RazrFalcon @ 2.7.2011, 19:18) *
То есть нужно что то в духе:
зачем тебе велосипед? Яже указал метод который даёт сортированный список.
RazrFalcon
Оно не работает рекурсивно!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.