qt中关于文件的所有操作
时间: 2024-01-23 20:01:58 浏览: 70
在Qt中,可以使用QFile、QDir、QFileInfo等类进行文件操作。
1. QFile类
QFile类用于读写文件,其常用函数如下:
- QFile::open():打开文件;
- QFile::close():关闭文件;
- QFile::read():从文件中读取数据;
- QFile::write():将数据写入文件;
- QFile::exists():判断文件是否存在;
- QFile::remove():删除文件;
- QFile::rename():重命名文件。
示例代码:
```
#include <QFile>
#include <QDebug>
int main()
{
// 创建文件
QFile file("test.txt");
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "文件打开失败!";
return -1;
}
// 写入数据
QString str = "Hello, world!";
file.write(str.toUtf8());
// 关闭文件
file.close();
// 读取数据
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QByteArray data = file.readAll();
qDebug() << data;
file.close();
}
// 删除文件
QFile::remove("test.txt");
return 0;
}
```
2. QDir类
QDir类用于访问目录,其常用函数如下:
- QDir::mkdir():创建目录;
- QDir::rmdir():删除目录;
- QDir::cd():进入子目录;
- QDir::entryList():获取目录下的文件和子目录;
- QDir::exists():判断目录是否存在;
- QDir::remove():删除目录及其子目录和文件。
示例代码:
```
#include <QDir>
#include <QDebug>
int main()
{
// 创建目录
QDir dir;
if(!dir.mkdir("test"))
{
qDebug() << "目录创建失败!";
return -1;
}
// 进入子目录
dir.cd("test");
// 创建文件
QFile file(dir.absoluteFilePath("test.txt"));
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "文件打开失败!";
return -1;
}
QString str = "Hello, world!";
file.write(str.toUtf8());
file.close();
// 获取目录下的文件和子目录
QStringList list = dir.entryList();
qDebug() << list;
// 删除目录及其子目录和文件
if(dir.exists())
{
dir.removeRecursively();
}
return 0;
}
```
3. QFileInfo类
QFileInfo类用于获取文件信息,其常用函数如下:
- QFileInfo::exists():判断文件是否存在;
- QFileInfo::size():获取文件大小;
- QFileInfo::created():获取文件创建时间;
- QFileInfo::lastModified():获取文件最后修改时间。
示例代码:
```
#include <QFileInfo>
#include <QDebug>
int main()
{
// 获取文件信息
QFileInfo info("test.txt");
if(info.exists())
{
qDebug() << "文件大小:" << info.size() << "字节";
qDebug() << "文件创建时间:" << info.created().toString("yyyy-MM-dd HH:mm:ss");
qDebug() << "文件最后修改时间:" << info.lastModified().toString("yyyy-MM-dd HH:mm:ss");
}
else
{
qDebug() << "文件不存在!";
}
return 0;
}
```
阅读全文