获取文件夹目录下所有文件按从早到晚排序 qt
时间: 2023-07-29 08:12:18 浏览: 114
您可以使用QDir类中的entryInfoList函数来获取目录下所有文件和子目录的信息,并使用QFileInfo类中的lastModified函数获取文件的最后修改时间,然后可以使用QList类中的sort函数对文件信息进行排序。以下是一个简单的示例代码,用于按照文件的最后修改时间从早到晚排序:
```cpp
#include <QDir>
#include <QFileInfo>
void sortFilesByLastModified(const QString& dirPath)
{
// Create a QDir object for the directory
QDir dir(dirPath);
// Get a list of all the files and directories in the directory
QList<QFileInfo> fileInfoList = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
// Sort the files by last modified time (from oldest to newest)
std::sort(fileInfoList.begin(), fileInfoList.end(),
[](const QFileInfo& fileInfo1, const QFileInfo& fileInfo2) {
return fileInfo1.lastModified() < fileInfo2.lastModified();
});
// Print the sorted file list
for (const QFileInfo& fileInfo : fileInfoList) {
if (fileInfo.isDir()) {
// Recursively sort files in subdirectories
sortFilesByLastModified(fileInfo.filePath());
} else {
qDebug() << fileInfo.fileName() << " - " << fileInfo.lastModified();
}
}
}
```
调用`sortFilesByLastModified`函数并传入目录路径即可按照文件的最后修改时间从早到晚排序并打印文件名及最后修改时间。如果目录下存在子目录,还需要递归地对子目录中的文件进行排序。
阅读全文