首页 > 代码库 > Qt文件信息获取之QFileInfo
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 \n").arg(fileName);16 }17 else18 {19 infoList += tr("Open file: %1 Successfully\n").arg(fileName);20 QTextStream in(&file);21 while (!in.atEnd()) {22 QString line = in.readLine();23 infoList += line;24 }25 infoList += "\n";26 file.close();27 }28 29 QFileInfo info(fileName);30 if (info.exists())31 {32 33 infoList += tr("文件名称: %1 \n").arg(info.fileName());34 infoList += tr("文件大小: %1 Bytes\n").arg(info.size());35 infoList += tr("创建时间: %1 \n").arg(info.created().toString("yyyy-MM-dd hh:mm:ss"));36 infoList += tr("修改时间: %1 \n").arg(info.lastModified().toString("yyyy-MM-dd hh:mm:ss"));37 infoList += tr("读取时间: %1 \n").arg(info.lastRead().toString("yyyy-MM-dd hh:mm:ss"));38 39 ui->infoLabel->setText(infoList);40 }41 }42 }
运行此程序,结果如下图所示:
需要说明的是,“创建时间”是指文件新建时的时间;“修改时间”是指最近一次对文件内容进行改动的时间;“读取时间”是最近一次读取文件的时间,从官方文档给出的介绍指出,如果平台不支持获取读取时间,那么该时间应该和修改时间相同,但是,本人在Win 8平台上测试结果表明此时间与创建时间相同。
最重要的是:即使我们对该文件进行压缩和解压,或者将压缩包拷贝到其他地方再解压,都不会改变文件的时间信息。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。