在Qt中爲文件的操作和信息獲取提供了許多方便的類,常用的有QDir,QFile,QFileInfo以及QFileDialog,在本文中主要介紹用於獲取關於文件信息的QFileInfo類。
QFileInfo可以提供文件的名稱和位置信息,此外,還有文件的大小,文件的訪問權限以及此文件是不是一個符號鏈接等信息。不僅如此,我們還可以通過這個類來查看文件的創建時間,修改時間和最近一次讀取時間。
下面的程序用於獲取文件的時間信息:
void MainWindow::on_browserBtn_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("打開文件"),
".",
tr("All Files(*.*)"));
if (!fileName.isEmpty())
{
ui->pathEdit->setText(fileName);
QString infoList;
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
infoList += tr("Can not open file: %1 \n").arg(fileName);
}
else
{
infoList += tr("Open file: %1 Successfully\n").arg(fileName);
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
infoList += line;
}
infoList += "\n";
file.close();
}
QFileInfo info(fileName);
if (info.exists())
{
infoList += tr("文件名稱: %1 \n").arg(info.fileName());
infoList += tr("文件大小: %1 Bytes\n").arg(info.size());
infoList += tr("創建時間: %1 \n").arg(info.created().toString("yyyy-MM-dd hh:mm:ss"));
infoList += tr("修改時間: %1 \n").arg(info.lastModified().toString("yyyy-MM-dd hh:mm:ss"));
infoList += tr("讀取時間: %1 \n").arg(info.lastRead().toString("yyyy-MM-dd hh:mm:ss"));
ui->infoLabel->setText(infoList);
}
}
}
運行此程序,結果如下圖所示: