一、绪论
方法签名 | 功能描述 |
---|---|
bool mkdir(const QString &dirName) |
创建子目录。 |
bool mkpath(const QString &dirPath) |
递归创建多级目录。 |
bool rmdir(const QString &dirName) |
删除空目录。 |
bool removeRecursively() |
递归删除整个目录树及其内容。 |
bool cd(const QString &dirName) |
切换到指定子目录。 |
bool cdUp() |
切换到父目录。 |
QStringList entryList(QDir::Filters filters) |
获取目录下的条目名称列表。 |
QFileInfoList entryInfoList(...) |
获取目录下文件的详细信息列表。 |
bool exists() |
检查目录是否存在。 |
bool remove(const QString &fileName) |
删除指定文件。 |
QString absolutePath() |
返回目录的绝对路径。 |
QString filePath(const QString &fileName) |
返回文件在目录中的完整路径 |
二、常用操作
2.1.创建操作
注意这个是在当前工作目录中创建的;
代码:
cpp
QDir dir;
if(dir.mkdir("test"))
{
qDebug()<<"目录创建成功";
}
结果:

2.2. 遍历目录
可以增加过滤器遍历目录,增加可读性。
-
常用过滤器 (QDir::Filter):
-
QDir::Dirs
:列出目录。 -
QDir::Files
:列出文件。 -
QDir::NoDotAndDotDot
:不显示 "." 和 ".." 条目。 -
QDir::AllEntries
:列出所有条目(目录、文件、驱动器)。 -
QDir::NoSymLinks
:不列出符号链接。
-
-
常用排序标志 (QDir::SortFlag):
-
QDir::Name
:按名称排序。 -
QDir::Time
:按修改时间排序。 -
QDir::Size
:按文件大小排序。 -
QDir::DirsFirst
:目录优先。 -
QDir::IgnoreCase
:忽略大小写。
-
代码:
cpp
QDir dir("D:/qtdemo/daily_test_window/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug");
// 设置过滤条件:只获取文件,排除 "." 和 ".."
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
// 设置排序:按名称排序,目录优先
dir.setSorting(QDir::Name | QDir::DirsFirst);
// 获取文件名称列表
QStringList entries = dir.entryList();
for (const QString &entry : entries) {
qDebug() << "文件:" << entry;
}
结果:
2.3.删除操作
cpp
QDir dir("D:/qtdemo/daily_test_window/build/Desktop_Qt_6_7_0_MinGW_64_bit-Debug/test");
if (!dir.exists()) {
qDebug() << "目录不存在:" << dir;
}
// 使用 removeRecursively() 删除整个目录树
bool result = dir.removeRecursively();
if (result) {
qDebug() << "目录删除成功:" << dir;
} else {
qDebug() << "目录删除失败:" << dir;
}
结果: