创建打开文件&保存文件对话框;QDir创建目录;

本文详细介绍如何使用Qt中的QFileDialog进行文件打开和保存操作,包括通过getOpenFileName和getSaveFileName函数创建对话框,自动创建文件和目录,以及如何读取和写入文件内容。
  • 创建打开文件对话框,实现点击文件将文件内容输出;
  • 创建保存文件对话框,实现输入文件名创建文件,点击保存将内容保存至对应文件中;
  • QFileDialog::getOpenFileNameQFileDialog::getSaveFileName创建对话框;
  • 创建文件则是在打开文件时,文件不存在自动创建的文件,对话框仅仅提供了一个路径;

一、打开文件对话框

  • QFileDialog::getOpenFileName创建打开文件的对话框,获取路径;
  • 将文件打开,读取其中的内容;
void MainWindow::openFile(){
    QString filePath = QFileDialog::getOpenFileName(this,"选择文件","E:\\test","(*.txt)");
    if(filePath.isEmpty()){
        QMessageBox::warning(this,"Failed!","文件路径为空!");
        return;
    }
    QFile file(filePath);
    file.open(QIODevice::ReadOnly); // 以只读方式打开
    QByteArray content = file.readAll();
    ui->textEdit->setText(content);  // 显示数据
    file.close();
}

二、保存文件对话框创建文件

  • 文件创建的方式为不存在则自动创建
  • QFileDialog::getSaveFileName创建打开文件的对话框,获取路径;
  • file.open(QIODevice::ReadWrite | QIODevice::Truncate)以覆盖的方式打开文件(注:QIODevice::Truncate不能单独使用,需要指定是以哪种方式打开)
  • 将内容写入文件中
void MainWindow::storeFile()
{
    QString filePath = QFileDialog::getSaveFileName(this,"保存文件", "E:\\test","(*.txt)");
    if(filePath.isEmpty()){
        QMessageBox::warning(this,"Failed!","文件路径不能为空!");
        return;
    }
    
    QString grammar = ui->textBrowser->toPlainText();
    QFile file(filePath);
    
    // 文件不存在则自动创建,若存在则覆盖写入
    if(!file.open(QIODevice::ReadWrite | QIODevice::Truncate)){
        QMessageBox::warning(this,"ERROR","打开文件失败,数据保存失败");
        return;
    }
    file.write(grammar.toLatin1());
    file.close();
}

三、创建目录

QString filePath = QFileDialog::getSaveFileName(this,"保存文件", "E:\\test","(*.txt)");
    if(filePath.isEmpty()){
        QMessageBox::warning(this,"Failed!","路径不能为空!");
        return;
    }
  
QDir * directory = new QDir;
if(!directory ->exists(filePath){  		// 目录不存在则创建该目录
	if(!directory ->mkdir(filePath)){// 创建目录
		QMessageBox::warning(this,"Failed!","目录创建失败!");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值