📂 文件与目录操作核心类及其函数详解
1. QFile 类:文件 I/O 操作
QFile 类用于访问本地文件系统中的文件。它继承自 QIODevice,因此具有所有基本的输入/输出功能。
| 函数分类 | 核心函数 (Function) | 作用描述 |
|---|---|---|
| I/O 控制 | open(OpenMode mode) | 打开文件。 mode 参数决定了文件的打开方式(如 QIODevice::ReadOnly, WriteOnly, Append 等)。返回 true 表示成功。 |
close() | 关闭文件。 释放文件句柄。 | |
read(qint64 maxSize) | 读取数据。 从文件读取最多 maxSize 字节的数据。 | |
readAll() | 读取所有数据。 将文件中的所有剩余数据作为一个 QByteArray 返回。 | |
write(const QByteArray &data) | 写入数据。 将给定的字节数组写入文件。返回写入的字节数。 | |
seek(qint64 offset) | 定位文件指针。 将文件读取/写入的位置移动到指定的偏移量。 | |
| 文件状态 | fileName() | 获取文件名。 返回当前 QFile 对象关联的文件的名称(路径)。 |
size() | 获取文件大小。 返回文件中的字节数。 | |
exists() | 检查存在性。 静态函数,检查给定路径的文件是否存在。QFile::exists("path/to/file")。 | |
remove() | 删除文件。 删除当前 QFile 对象关联的文件。 | |
rename(const QString &newName) | 重命名文件。 将文件重命名为 newName。 | |
resize(qint64 size) | 调整大小。 调整文件大小为指定的字节数。 |
2. QDir 类:目录操作和路径处理
QDir 类用于操作文件系统中的目录,并提供了平台无关的路径处理功能。
| 函数分类 | 核心函数 (Function) | 作用描述 |
|---|---|---|
| 目录管理 | mkdir(const QString &dirName) | 创建目录。 在当前目录或已知路径下创建新的子目录。 |
rmdir(const QString &dirName) | 删除目录。 删除指定的空目录。 | |
mkpath(const QString &dirPath) | 创建路径。 递归创建路径中所有不存在的目录。 | |
rmpath(const QString &dirPath) | 删除路径。 递归删除路径中的所有目录(如果目录为空)。 | |
remove(const QString &fileName) | 删除文件。 在当前目录下删除指定的文件(注意:这是删除文件)。 | |
| 目录信息 | currentPath() | 获取当前路径。 静态函数,返回应用程序的当前工作目录。 |
absolutePath() | 获取绝对路径。 返回当前 QDir 对象代表目录的绝对路径。 | |
cd(const QString &dirName) | 切换目录。 将当前 QDir 对象的路径切换到 dirName。 | |
| 内容列表 | entryList(const QStringList &nameFilters, Filters filters, SortFlags sort) | 获取目录内容列表。 返回目录中文件和目录的名称列表 (QStringList),可使用过滤器和排序标志。 |
isEmpty() | 检查是否为空。 检查目录中是否包含任何文件或子目录。 | |
| 路径处理 | filePath(const QString &fileName) | 构建完整路径。 将当前目录路径与 fileName 组合,返回一个完整的路径字符串。 |
cleanPath(const QString &path) | 清理路径。 移除路径中的冗余部分(如 .. 和 .),返回规范化路径。 |
3. QFileInfo 类:文件元数据获取
QFileInfo 类用于检索有关文件(或目录)的各种信息和属性,而无需打开文件。
| 函数分类 | 核心函数 (Function) | 作用描述 |
|---|---|---|
| 信息获取 | exists() | 检查存在性。 检查 QFileInfo 对象引用的文件或目录是否存在。 |
fileName() | 获取文件名。 返回文件名(不包含路径)。 | |
absoluteFilePath() | 获取绝对路径。 返回文件或目录的完整绝对路径。 | |
suffix() / baseName() | 获取后缀和基名。 分别返回文件扩展名和不带路径/后缀的文件名。 | |
| 类型判断 | isDir() | 是否为目录。 返回 true 如果是目录。 |
isFile() | 是否为文件。 返回 true 如果是普通文件。 | |
isSymLink() | 是否为符号链接。 返回 true 如果是软链接。 | |
isReadable() / isWritable() | 检查权限。 检查文件是否可读/可写。 | |
| 时间戳 | created() | 获取创建时间。 返回文件的创建时间 (QDateTime)。 |
lastModified() | 获取最后修改时间。 返回文件的最后修改时间 (QDateTime)。 | |
| 大小信息 | size() | 获取文件大小。 返回文件的大小(字节)。 |
🔍 总结和类间关系
这三个类通常协同工作:
- 您可以使用
QDir的entryList()函数获取某个目录下的所有文件名。 - 对于列表中的每个文件名,您可以构建一个
QFileInfo对象来检查它是文件还是目录,以及它的大小和时间戳。 - 如果您确定它是一个文件并且需要读写,则创建一个
QFile对象并使用它的open()和read()/write()函数。
1969

被折叠的 条评论
为什么被折叠?



