Уведомления
Очистить все
Привет любителям Qt, у меня вопрос по поводу сортировки файлов. Создаю объект QDir:
QDir dir("D:/test_folder");
QStringList files = dir.entryList();
for (int i = 0; i < files.size(); i++)
{
qDebug() << files.at(i);
}
Для теста вывожу список файлов в папке. Файлы выводятся отсортированные по имени файла, в алфавитном порядке. Как мне сделать, чтобы файлы в QStringList files были отсортированы по времени изменения?
Создатель темы Размещено : 01.07.2021 22:20
Добрый день!
Это реализуется через:
setSorting(QDir::SortFlags sort)
Аргумент может быть:
| Constant | Value | Description |
|---|---|---|
| QDir::Name | 0x00 | Sort by name. |
| QDir::Time | 0x01 | Sort by time (modification time). |
| QDir::Size | 0x02 | Sort by file size. |
| QDir::Type | 0x80 | Sort by file type (extension). |
| QDir::Unsorted | 0x03 | Do not sort. |
| QDir::NoSort | -1 | Not sorted by default. |
| QDir::DirsFirst | 0x04 | Put the directories first, then the files. |
| QDir::DirsLast | 0x20 | Put the files first, then the directories. |
| QDir::Reversed | 0x08 | Reverse the sort order. |
| QDir::IgnoreCase | 0x10 | Sort case-insensitively. |
| QDir::LocaleAware | 0x40 | Sort items appropriately using the current locale settings. |
То есть для Вашего примера:
QDir dir("D:/test_folder");
dir.setSorting(QDir::Time);
QStringList files = dir.entryList();
for (int i = 0; i < files.size(); i++)
{
qDebug() << files.at(i);
}
Размещено : 02.07.2021 13:28
Спасибо, получилось, но теперь хочу поменять порядок вывода. То есть изначально вышло от последнего изменения к более ранним, а я хочу наоборот. Пробую так:
QDir dir("D:/test_folder");
dir.setSorting(QDir::Time);
dir.setSorting(QDir::Reversed);
Но выводится снова в алфавитном порядке, только теперь в обратном направлении.
Создатель темы Размещено : 02.07.2021 14:17
QDir dir("D:/test_folder");
dir.setSorting(QDir::Time | QDir::Reversed);
Размещено : 02.07.2021 17:21
QDir dir("D:/test_folder");
dir.setSorting(QDir::Time | QDir::Reversed);
Понял, спасибо, получилось!
Создатель темы Размещено : 02.07.2021 19:01
Тему закрываю)
Создатель темы Размещено : 02.07.2021 19:01