QT 目录和文件枚举的方法
时间: 2024-09-07 07:04:48 浏览: 47
在Qt框架中,目录和文件的枚举通常可以通过`QDir`类和`QFileInfo`类来完成。以下是一些基本方法:
1. 使用`QDir`类遍历目录:
`QDir`类提供了`entryList`方法,该方法可以列出指定目录下的所有文件和子目录。`entryList`方法接受一个过滤器参数,可以用来筛选特定类型的文件。例如,如果只想获取所有的`.txt`文件,可以使用`QDir::Files`过滤器。
2. 使用递归遍历子目录:
若要获取目录结构中的所有子目录,可以使用递归函数来遍历每个目录。在递归函数中,对每个子目录调用自身。
3. 获取文件信息:
`QDir`类可以结合`QFileInfo`类使用,后者提供了关于文件的详细信息,如文件大小、修改时间等。
以下是一个简单的代码示例:
```cpp
#include <QDir>
#include <QFileInfoList>
void listFilesInDirectory(const QString &path) {
QDir dir(path);
QStringList fileNames = dir.entryList(QStringList() << "*.txt", QDir::Files);
foreach (const QString &fileName, fileNames) {
QFileInfo fileInfo(dir.absoluteFilePath(fileName));
// 输出文件信息,例如:文件名、大小和最后修改时间
qDebug() << fileInfo.fileName() << fileInfo.size() << fileInfo.lastModified();
}
// 递归遍历子目录
QStringList subDirNames = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach (const QString &subDirName, subDirNames) {
listFilesInDirectory(dir.absoluteFilePath(subDirName));
}
}
```
阅读全文