- 创建打开文件对话框,实现点击文件将文件内容输出;
- 创建保存文件对话框,实现输入文件名创建文件,点击保存将内容保存至对应文件中;
- 用
和QFileDialog::getOpenFileName
创建对话框;QFileDialog::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
-
以覆盖的方式打开文件(注:QIODevice::Truncate不能单独使用,需要指定是以哪种方式打开)file.open(QIODevice::ReadWrite | 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!","目录创建失败!");
}
}