天天看點

建立打開檔案&儲存檔案對話框;QDir建立目錄;

  • 建立打開檔案對話框,實作點選檔案将檔案内容輸出;
  • 建立儲存檔案對話框,實作輸入檔案名建立檔案,點選儲存将内容儲存至對應檔案中;
  • 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

    建立打開檔案的對話框,擷取路徑;
  • 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!","目錄建立失敗!");
	}
}
           

繼續閱讀