zoukankan      html  css  js  c++  java
  • Qt文件信息获取之QFileInfo

    在Qt中为文件的操作和信息获取提供了许多方便的类,常用的有QDir,QFile,QFileInfo以及QFileDialog,在本文中主要介绍用于获取关于文件信息的QFileInfo类。

    QFileInfo可以提供文件的名称和位置信息,此外,还有文件的大小,文件的访问权限以及此文件是不是一个符号链接等信息。不仅如此,我们还可以通过这个类来查看文件的创建时间,修改时间和最近一次读取时间。

    下面的程序用于获取文件的时间信息:

     1 void MainWindow::on_browserBtn_clicked()
     2 {
     3     QString fileName = QFileDialog::getOpenFileName(this,
     4                                                     tr("打开文件"),
     5                                                     ".",
     6                                                     tr("All Files(*.*)"));
     7     if (!fileName.isEmpty())
     8     {
     9         ui->pathEdit->setText(fileName);
    10         QString infoList;
    11 
    12         QFile file(fileName);
    13         if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    14         {
    15             infoList += tr("Can not open file: %1 
    ").arg(fileName);
    16         }
    17         else
    18         {
    19             infoList += tr("Open file: %1 Successfully
    ").arg(fileName);
    20             QTextStream in(&file);
    21             while (!in.atEnd()) {
    22                 QString line = in.readLine();
    23                 infoList += line;
    24             }
    25             infoList += "
    ";
    26             file.close();
    27         }
    28 
    29         QFileInfo info(fileName);
    30         if (info.exists())
    31         {
    32 
    33             infoList += tr("文件名称: %1 
    ").arg(info.fileName());
    34             infoList += tr("文件大小: %1 Bytes
    ").arg(info.size());
    35             infoList += tr("创建时间: %1 
    ").arg(info.created().toString("yyyy-MM-dd hh:mm:ss"));
    36             infoList += tr("修改时间: %1 
    ").arg(info.lastModified().toString("yyyy-MM-dd hh:mm:ss"));
    37             infoList += tr("读取时间: %1 
    ").arg(info.lastRead().toString("yyyy-MM-dd hh:mm:ss"));
    38 
    39             ui->infoLabel->setText(infoList);
    40         }
    41     }
    42 }

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

    需要说明的是,“创建时间”是指文件新建时的时间;“修改时间”是指最近一次对文件内容进行改动的时间;“读取时间”是最近一次读取文件的时间,从官方文档给出的介绍指出,如果平台不支持获取读取时间,那么该时间应该和修改时间相同,但是,本人在Win 8平台上测试结果表明此时间与创建时间相同。

    最重要的是:即使我们对该文件进行压缩和解压,或者将压缩包拷贝到其他地方再解压,都不会改变文件的时间信息。

  • 相关阅读:
    常用开发技巧系列(三)
    快速排序OC、Swift版源码
    一步一步学习SignalR进行实时通信_8_案例2
    一步一步学习SignalR进行实时通信_7_非代理
    一步一步学习SignalR进行实时通信_6_案例
    一步一步学习SignalR进行实时通信_5_Hub
    一步一步学习SignalR进行实时通信_4_Hub
    一步一步学习SignalR进行实时通信_3_通过CORS解决跨域
    一步一步学习SignalR进行实时通信_2_Persistent Connections
    一步一步学习SignalR进行实时通信_1_简单介绍
  • 原文地址:https://www.cnblogs.com/xiaomanon/p/3873219.html
Copyright © 2011-2022 走看看