1、创建文件夹
头文件:
#include <QDir>
#include <QMessageBox>
核心代码如下:
//实例QDir
QDir *folder = new QDir;
//判断创建文件夹是否存在
bool exist = folder->exists("D:/NewFolder");
if(exist)
{
QMessageBox::warning(this,tr("创建文件夹"),tr("文件夹已经存在!"));
}
else //如果不存在,创建文件夹
{
//创建文件夹
bool ok = folder->mkdir("D:/NewFolder");
//判断是否成功
if(ok)
{
QMessageBox::warning(this,tr("创建文件夹"),tr("文件夹创建成功!"));
}
else
{
QMessageBox::warning(this,tr("创建文件夹"),tr("文件夹创建失败!"));
}
}
2、写入文件:
头文件:
#include <QMessageBox>
#include <QFile>
核心代码如下:
//实例QFile
QFile file("D:/Qt.txt");
//定义文件内容字符串
QString content= "写入文件的内容";
//判断文件是否存在
if(file.exists())
{
QMessageBox::warning(this,"创建文件","文件已经存在!");
}else
{
//存在打开,不存在创建
file.open(QIODevice::ReadWrite | QIODevice::Text);
//写入内容,这里需要转码,否则报错。
QByteArray str = content.toUtf8();
//写入QByteArray格式字符串
file.write(str);
//提示成功
QMessageBox::warning(this,"创建文件","文件创建成功!");
}
//关闭文件
file.close();
3、修改文件内容:
头文件:
#include <QFileDialog>
#include <QMessageBox>
#include <QTextStream>
#include <QTextCodec>
#include <QFile>
核心代码如下:
//浏览文件
//定义变量str接收QFileDialog对话框获取的文件路径
QString str = QFileDialog::getOpenFileName(this,"open file","/","text file(*.txt);;C file(*.cpp);;All file(*.*)");
//文件路径转换为utf8格式
QString str_utf8 =str.toUtf8();
//判断是否选择文件
if(str_utf8.isEmpty())
{
return;
}
//设置文件路径
QFile file(str_utf8);
//判断文件是否打开成功
if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
{
QMessageBox::warning(this,"打开文件","打开文件失败!");
return;
}
//文件流
QTextStream ts(&file);
//获取文件中的数据
QString str_get;
//循环文档数据至结尾
while(!ts.atEnd())
{
//将全部数据绑定str_get
str_get = ts.readAll();
}
//关闭文档
file.close();
//保存文件,此段函数置于另一个槽函数
QFile file(str_utf8);
file.open(QIODevice::ReadWrite | QIODevice::Text);
//写入内容,这里需要转码,否则报错。
QByteArray strb = str_get.toUtf8();
//写入QByteArray格式字符串
file.write(strb);
//提示成功
QMessageBox::warning(this,"修改文件","文件修改成功!");
file.close();
4、删除文件:
头文件:
#include <QMessageBox>
#include <QFile>
#include <QFileDialog>
核心代码如下:
QString str = QFileDialog::getOpenFileName(this,"选择文件","/","text
file(*.txt);;C file(*.cpp);;All file(*.*)");
//转换文件路径
QString get = str.toUtf8();
//删除文件
QFile::remove(get);
//提示
QMessageBox::warning(this,"删除文件","删除成功!");
5、修改文件名
头文件:
#include <QFileDialog>
#include <QMessageBox>
核心代码如下:
//新文件名
QString new = "Qt文件操作详解";
//定义变量str接收QFileDialog对话框获取的文件路径
QString str = QFileDialog::getOpenFileName(this,"open file","/","text
file(*.txt);;C file(*.cpp);;All file(*.*)");
//转换文件路径
QString get = str.toUtf8();
//实例QFileInfo函数
QFileInfo file(get);
//获取文件路径
QString path = file.absolutePath();
//bool型变量接收是否修改成功成功true,不成功false。
bool x = QFile::rename(get,path + "/" + new);
if(x)
{
QMessageBox::warning(this,"修改文件名","文件修改成功!");
}else
{
QMessageBox::warning(this,"修改文件名","文件修改失败!");
6、INI文件写入操作:
对于INI文件,搜狗百科的解释:
.ini文件是InitializationFile的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。
简言之,INI文件普遍作为配置文件使用。
头文件:
#include <QSettings>
核心代码如下:
QSettings *writeIni;
//QSettings 构造函数的第一个参数是 ini 文件的路径,第二个参数表示针对 ini 文件
writeIni = new QSettings("D:/CSDN.ini", QSettings::IniFormat);
//写入键、值
writeIni->setValue("node"+"/"+"ip","192.168.1.1");
//写入完成删除指针
delete writeIni;
7、INI文件读取操作
头文件:
#include <QSettings>
核心代码如下:
QSettings *readIni;
QTextEdit *valEdit = new QTextEdit(this);
//QSettings 构造函数的第一个参数是 ini 文件的路径,第二个参数表示针对 ini 文件
readIni = new QSettings("D:/CSDN.ini", QSettings::IniFormat);
/*将读取到的 ini 文件保存在 QString 中,先取值,然后通过 toString()函数转换成QString类型*/
QString key = "键值";
QString ipResult = readIni->value("node"+"/"+key).toString();
//将结果绑定 IP 值控件上
valEdit->setText(ipResult);
//写入完成删除指针
delete readIni;
8 创建 XML 文件
头文件:
#include <QFile>
#include <QXmlStreamWriter>
核心代码如下:
//文件路径
QString xmlPath = "D:/Qter.xml";
QFile file(xmlPath);
if(file.open(QIODevice::WriteOnly | QIODevice::Text))
{
//实例 QXmlStreamWriter
QXmlStreamWriter stream(&file);
stream.setAutoFormatting(true);
//文档头
stream.writeStartDocument();
//根节点
stream.writeStartElement("Root");
//元素、值
stream.writeAttribute("href", "");
//节点内容
stream.writeTextElement("title", "Qt Home");
stream.writeEndElement();
stream.writeEndDocument();
//关闭文件
file.close();
9、 读取 XML 文件
头文件:
#include <QFile>
#include <QXmlStreamWriter>
核心代码如下:
QLabel *resultL = new QLabel(this);
QString xmlPath = "D:/Qter.xml";
QFile file(xmlPath);
//定义变量接收信息
QString str;
//判断文件是否存在
if(file.exists())
{
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
//实例 QXmlStreamReader 对象读取文件
QXmlStreamReader xmlRead(&file);
//循环节点
while (!xmlRead.atEnd())
{
//指针下移
xmlRead.readNext();
if(xmlRead.isStartElement())
{
//如果节点有等于 title 的
if(xmlRead.name() == "title")
{
//取 title 值赋予变量 str
str = xmlRead.readElementText();
}else
{
str = "没找到节点";
}
}
}
//将值绑定 QLabel 控件显示
resultL->setText(str);
}else
{
resultL->setText("文件打开失败");
}
//关闭文件
file.close();
}else
{
resultL->setText("文件不存在");
}