Qt 获取文件夹下所有文件信息,排序
程序员文章站
2024-02-19 11:10:58
...
-
获取文件夹下所有文件数目
int MyWidget::getFileCount()
{
int count=0;
QString path = "./storage";
QDir myDir(path);//
for(unsigned int i = 0;i < myDir.count();i++){
QString sext = myDir[i].toLower();
if(-1 != sext.indexOf(".png"))
count++;
}
return count;
}
-
获取文件夹下所有文件信息,存储文件数量超过一定数目,删除较早的文件
void MyWidget::getFileInfo()
{
int i,j;
QDir *dir=new QDir(IMG_PATH);
QStringList filter;
filter<<"*.png";
dir->setNameFilters(filter);
QList<QFileInfo> fileInfo = QList<QFileInfo>(dir->entryInfoList(filter));
if(fileInfo.size() > 49){//如果>=50个,删除更早的图片
QList<QDateTime> fileTime;
for(i = 0; i < fileInfo.size(); i++) {
fileTime.append(fileInfo.at(i).lastModified());
}
qSort(fileTime.begin(), fileTime.end());//容器元素的递增排序
for(i = 0; i < (fileTime.size() - 49);i++){
for(j = 0;j < fileTime.size(); j++){
if(fileInfo.at(j).lastModified() == fileTime.at(i))
dir->remove(fileInfo.at(j).fileName());
}
}
}
}
-
qSort排序
qSort(fileTime.begin(), fileTime.end());//容器元素的递增排序
如果需要按照递减排序,需要将qGreater<T>()当作第三个参数传给qSort()函数。例如:
qSort(fileTime.begin(), fileTime.end(), qGreater<QDateTime>());
上一篇: 导入文件
下一篇: QT 逐行读取csv文件