我想知道如何根据修改日期对此列表进行排序

时间:2016-01-01 03:27:52

标签: c++ qt

我在qt 5.5编码,我有一个QDir从单个文件夹中获取所有文件,我想知道如何按修改日期对这些文件进行排序。我需要订购它们并将它们重命名为1,2,3 ......直到结束。我有这个工作,但我只需要找到一种方法如何按日期排序。非常感谢任何帮助。

//MainWindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileDialog>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_toolButton_clicked();

    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


//MainWindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"

QString path;
QStringList before;
QString suffix;
QDir folder;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_toolButton_clicked()
{
    ui->listWidget->clear();
    ui->listWidget_2->clear();
    path = QFileDialog::getExistingDirectory(this, tr("Open Directory"), "/home", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
    ui->lineEdit->setText(path);
    folder.setPath(path);
    before = folder.entryList(QDir::Files);
    ui->listWidget->addItems(before);

    QString temp = before.at(0);
    QStringList pieces = temp.split(".");
    suffix = pieces.value(pieces.length() - 1);

    int amount = folder.count();
    QStringList after;

    for (int x = 0; x < amount;)
    {
        x++;
        after << QString::number(x) + "." + suffix;
    }

    ui->listWidget_2->addItems(after);
}

void MainWindow::on_pushButton_clicked()
{
    for (int x = 0; x < before.count(); x++)
    {
        int i = x;
        folder.rename(before.at(x), QString::number(i++) + "." + suffix);
    }
}


//Main.cpp:
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

0 个答案:

没有答案
相关问题