Qt对文件和目录的操作核心类及其函数详解


📂 文件与目录操作核心类及其函数详解

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()获取文件大小。 返回文件的大小(字节)。

🔍 总结和类间关系

这三个类通常协同工作:

  1. 您可以使用 QDirentryList() 函数获取某个目录下的所有文件名。
  2. 对于列表中的每个文件名,您可以构建一个 QFileInfo 对象来检查它是文件还是目录,以及它的大小和时间戳。
  3. 如果您确定它是一个文件并且需要读写,则创建一个 QFile 对象并使用它的 open()read()/write() 函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值