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         else
18         {
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平台上测试结果表明此时间与创建时间相同。

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

Qt文件信息获取之QFileInfo,布布扣,bubuko.com

时间: 2024-10-23 17:05:34

Qt文件信息获取之QFileInfo的相关文章

PHP文件信息获取函数

知识点: basename():获取文件名,传入第二个参数则只显示文件名,不显示后缀 dirname():获取文件路径 pathinfo():将文件信息存入一个数组,通过索引basename,dirname,extension可以获得对应的文件名,路径和后缀,很常用的一个函数 filesize():获取文件大小,但是是字节单元,所以要计算后得到KB单元 fileatime():文件最后访问时间,返回时间戳 filectime():文件最后改变时间,返回时间戳 filemtime():文件最后修改

PE文件信息获取工具-PEINFO

能实现基本的信息获取 区段信息 数据目录信息 导入表函数分析 导出表函数分析,能同时解析只序号导出和以函数名序号同时导出的函数 FLC计算 需要源码的可以留邮箱.

读取资源文件信息

读取资源文件信息 获取某个类的位置(编译后的.class文件的位置): new Junit().getClass().getResource("").getPath(); 获取classpath的位置(在tomcat中完美获取,在weblogic中无法正常获取,在JavaApplication中也能获取): this.getClass().getResource("\").getPath(); 获取classpath的位置(该方法在jdk7以后无效): Thread

批处理获取拖入文件信息

@ECHO OFF echo %1:获取拖入文件完整路径.如:"E:\DDC\add.txt"echo %~1:获取拖入文件完整路径,并去掉首尾引号.如:E:\DDC\add.txtecho %~nx1:获取拖入文件文件名及后缀.如:add.txtecho %~n1:获取拖入文件文件名.如:addecho %~x1:获取拖入文件后缀名.如:.txtecho %~dp1:获取拖入文件所在目录完整路径.如:E:\DDC\echo %cd%:获取拖入文件所在目录路径.如:E:\DDCecho

C# 实现访问FTP服务器下载文件,获取文件夹信息小记

最近因为要开发广告制作工具,自动生成广告流,需要获取第三方服务器上的文件资源,经过摸索,从这次经历中记录下. FtpWebRequest reqFtp; WebResponse response = null; //获取文件夹信息 reqFtp = (FtpWebRequest)WebRequest.Create(this.ftp);//ftp://IP:port/文件夹名1/文件夹名2/.../文件夹名 reqFtp.UseBinary = true; reqFtp.KeepAlive = f

las点转为Shapefile文件,获取高程信息

将LiDAR点文件转换为Shapefile文件,方便ArcGIS9.3版本操作 const char *pSrcFileName = "D:\\LidarTestData\\1.las"; std::ifstream ifs;ifs.open(pSrcFileName, std::ios::in | std::ios::binary); if(ifs == NULL) { cout<<"null"<<endl; } liblas::Reade

如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库

在4.4版本之前,我们可以使用发送广播的方式,强制刷新多媒体库 IntentFilter intentFilter = new IntentFilter( Intent.ACTION_MEDIA_SCANNER_STARTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); intentFilter.addDataScheme("file"); sendBroadcast(new Intent(Intent

C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表

C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表 2011-12-13 09:00:40| 分类: C# |举报|字号 订阅 OpenFileDialog openFileDialog1 = new OpenFileDialog(); if(openFileDialog1.ShowDialog() == DialogResult.OK) { openFileDialog1.FileName; System.IO.FileInfo file = new System.IO.Fil

HttpWebRequest / HttpWebResponse 远程获取文件信息

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(path+filename); //创建一个请求(获得需要的文件信息) HttpWebResponse myRes = (HttpWebResponse)myReq.GetResponse(); string gorlseftDate = myRes.LastModified.ToString("yyyy-MM-dd hh:mm:ss");//获得dataServer.ra