創建打開&保存文件對話框;QDir創建目錄;

  • 創建打開文件對話框,實現點擊文件將文件內容輸出;
  • 創建保存文件對話框,實現輸入文件名創建文件,將內容保存至文件中;
  • 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!","目錄創建失敗!");
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章