crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QDirIterator и сортировка
RazrFalcon
  опции профиля:
сообщение 2.7.2011, 15:19
Сообщение #1


Zombie Mod
*****

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

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




Репутация:   212  


Пишу небольшой тегэдитор, и для рекурсивной загрузки файлов использую 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
  опции профиля:
сообщение 2.7.2011, 15:55
Сообщение #2


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

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

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




Репутация:   94  


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

Сортировку поддерживает только QDir::entryList(), т.к. он сначала получает весь список, а потом его сортирует.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 2.7.2011, 16:18
Сообщение #3


Zombie Mod
*****

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

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




Репутация:   212  


Ах вот как... ясно.
То есть нужно что то в духе:
  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));
Что бы выделяло первую строку всегда.

Сообщение отредактировал RazrFalcon - 2.7.2011, 16:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.7.2011, 17:40
Сообщение #4


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

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

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




Репутация:   94  


Цитата(RazrFalcon @ 2.7.2011, 19:18) *
То есть нужно что то в духе:
зачем тебе велосипед? Яже указал метод который даёт сортированный список.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 3.7.2011, 18:58
Сообщение #5


Zombie Mod
*****

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

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




Репутация:   212  


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

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


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




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