Qt 打開檔案,擷取檔案資訊,讀寫檔案
選擇檔案對話框 QFileDialog
#include <QFileDialog>
可以設定一個過濾字尾,也可以設定多個字尾
可以設定選擇一個檔案或者選擇多個檔案
檔案資訊 QFileInfo
有好多的接口 常用的也就那麼幾個
名字 大小 類型 建立時間 修改時間等等
打開檔案并讀取内容QFile ,QTextStream
file.open(QIODevice::ReadOnly | QIODevice::Text) 的參數清單
文本的讀寫用 QTextSteam 非常友善
QFile file(filePath);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))//隻讀
{
ui->textEdit->append("檔案打開失敗");
return;
}
QTextStream readStream(&file);
ui->textEdit->append("檔案内容:");
while(!readStream.atEnd()) //沒有讀到檔案末尾
{
//readLine 讀取一行
ui->textEdit->append(readStream.readLine());
}
code:
void MainWindow::on_selectPath_btn_clicked()
{
//選擇檔案對話框/
QFileDialog* f = new QFileDialog(this);
f->setWindowTitle("選擇資料檔案*.txt");
f->setNameFilter("*.txt");
f->setViewMode(QFileDialog::Detail);
QString filePath;
if(f->exec() == QDialog::Accepted)
filePath = f->selectedFiles()[0];
ui->lineEdit->setText(filePath);
ui->textEdit->append("檔案路徑:"+filePath);
檔案資訊//
QFileInfo info(filePath);
ui->textEdit->append(QString("檔案大小:%1 byte").arg(info.size()));
ui->textEdit->append(QString("檔案名稱:%1").arg(info.fileName()));
ui->textEdit->append(QString("建立時間:%1").arg(info.created().toString("yyyy-MM-dd hh:mm:ss")));
ui->textEdit->append(QString("修改時間:%1").arg(info.lastModified().toString("yyyy-MM-dd hh:mm:ss")));
///檔案内容//
QFile file(filePath);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
ui->textEdit->append("檔案打開失敗");
return;
}
QTextStream readStream(&file);
ui->textEdit->append("檔案内容:");
while(!readStream.atEnd())
{
ui->textEdit->append(readStream.readLine());
}
}