本文主要是介绍linux 获得目录中 文件夹 并 删除掉最早的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
获得目录的文件夹 并 删除最早的 ,
好像这个QFileInfoListIterator只有 前++,
#include <stdio.h>
#include <stdlib.h>
#include <qdir.h>
#include <qstring.h>
int main(int argc, char *argv[])
{
QDir d("/Record");
d.setFilter( QDir::Dirs | QDir::NoSymLinks );
d.setSorting( QDir::Name);
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
printf("%d/n",d.count());
++it;
++it;
fi = it.current();
printf( "%10li %s/n", fi->size(), fi->fileName().latin1() );
QString Qs="rm -rf /Record/";
Qs.append(fi->fileName().latin1());
system(Qs);
return EXIT_SUCCESS;
}
遍历
#include <stdio.h>
#include <qdir.h>
int main( int argc, char **argv )
{
QDir d;
d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
d.setSorting( QDir::Size | QDir::Reversed );
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
printf( " Bytes Filename/n" );
while ( (fi = it.current()) != 0 ) {
printf( "%10li %s/n", fi->size(), fi->fileName().latin1() );
++it;
}
return 0;
}
递归实现
#include <qdir.h>
#define DIRNAME "e:/test"
void foo1(QString );
void main()
{
foo1(DIRNAME);
}
void foo1(QString s)
{
if(s.right(1) != "/" ) s.append("/"); //判断格式
QDir dir(s);
if(!dir.exists(s,true)) return ; //是否存在
int dc = dir.count();
dir.rmdir(s,true);
if(dir.exists(s,true))
{
for(int i =2 ; i< dc; i++)
{
QString temp = s ;
temp.append(dir);
dir.rmdir(temp,true); //假设其是目录
dir.remove(temp,true); //或者是文件
if(dir.exists(temp,true)) //判断是否删除
{
foo1(temp); //递归
}
}
}
dir.rmdir(s,true);
}
这篇关于linux 获得目录中 文件夹 并 删除掉最早的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!