当我们打开电脑文件夹,将文件按照创建日期排序的时候,可以看到,显示创建日期只能精确到分,这时候如果我想看看这个文件具体在几分几秒创建的就没办法看了。
其实文件本身记录的创建时间是可以紧缺到毫秒的,我们用qt打开这个文件就能看到相关信息,代码如下:
假设用QStringList m_strPathList;存放当前打开的所有文件的完整路径,
然后用QMap<QDateTime,QString> m_mapCreateDt_FileName;存放文件创建时间和文件完整路径,
那么将所有文件按照创建时间排序的方法如下:
m_mapCreateDt_FileName.clear();
for(int i = 0;i<m_strPathList.count();i++)
{
QFileInfo file(m_strPathList[i]);
m_mapCreateDt_FileName.insert(file.created(),m_strPathList[i]);
qDebug()<<m_strPathList[i]<<"create time:"<<file.created();
}
QStringList newFileLst;
QMap<QDateTime,QString>::const_iterator it = m_mapCreateDt_FileName.constBegin();
while(it!=m_mapCreateDt_FileName.constEnd())
{
newFileLst.append(it.value());
++it;
}
m_strPathList = newFileLst;
其实我都没有单独做排序的操作,因为QMap是默认按照键的从小到大的顺序排列的,所以当我们将文件创建时间作为key,文件完整路径作为value,然后将每一个文件的创建时间和路径塞进qmap之后,只要遍历一次qmap,即可实现将文件按照创建时间排序!