【Qt】文件操作
文件操作
- 读写文件
- 获取文件信息
读写文件
用 QFile 进行文件内容读写的基本操作步骤是:
- 调用函数 open() 打开或创建文件;
- 用读写函数读写文件内容;
- 调用函数 close() 关闭文件
调用 close() 会将缓存的数据写入文件,如果不能正常调用close(),可能会导致文件数据丢失。
QFile 的函数 open() 原型定义如下:
bool QFile::open(QIODeviceBase::OpenMode mode)
参数 mode 决定了文件以什么模式打开,mode 是标志类型 QIODeviceBase::OpenMode,它是枚举类型 QIODeviceBase::OpenModeFlag 的枚举值的组合,其个主要枚举值的含义如下。
枚举值 | 功能 |
---|---|
QIODevice::ReadOnly | 以只读模式打开文件,加载文件时使用此模式 |
QIODevice::WriteOnly | 以只写模式打开文件,保存文件时使用此模式 |
QIODevice::ReadWrite | 以读模式打开文件 |
QIODevice::Append | 以添加模式打开文件,新写入文件的数据添加到文件尾部 |
QIODevice::Truncate | 以截取模式打开文件,文件原有的内容全部被删除 |
QIODevice::Text | 以文本模式打开文件,读取时 “\n” 被自动翻译为一行的结束符,写入时字符串结束符会被自动翻译为系统平台的编码,如 Windows平台上是 “\r\n” |
获取文件信息
QFileInfo 类用于获取文件的各种信息。创建 QFileInfo 对象时可以指定一个文件名使该文件作为当前文件,也可以用函数 setFile() 指定一个文件作为当前文件。常用的两种构造函数定义如下:
QFileInfo(const QFileInfo &fileinfo) //指定文件名
QFileInfo() //不指定文件名
QFileInfo 常用接口函数,表中省略了函数参数中的 const 关键字。除了静态函数 exist(),其他都是公共接口函数,接口函数的操作都是针对 QFileInfo 对象的当前文件的。
函数原型 | 功能 |
---|---|
void setFile(QString &file) | 设置一个文件名,使该文件作为QFileInfo对象操作的当前文件 |
QString absoluteFilePath() | 返回包含文件名的绝对路径 |
QString absolutePath() | 返回绝对路径,不包含文件名 |
QString absoluteDir() | 返回绝对路径,返回值是 QDir 类型 |
QString FileName() | 返回去除路径的文件名 |
QString FilePath() | 返回包含路径的文件名 |
QString path() | 返回不含文件名的路径 |
qint64 size() | 返回文件大小,单位是字节 |
QString suffix() | 返回文件后缀 |
bool isDir | 判断当前对象是不是一个目录 |
bool isFile | 判断当前对象是不是一个文件 |
bool isExecutable | 判断当前文件是不是可执行文件 |
bool exists() | 判断文件是否存在 |
bool exists(QString &file) | 静态函数,判断 file 表示的文件是否存在 |
下面的代码就是获取文件的一些常用属性: