Qt5之QFileInfo类的用法

在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);
        }
    }
}

运行此程序,结果如下图所示:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章