红联Linux门户
Linux帮助

linux 获得目录中文件夹并删除掉最早的

发布时间:2007-12-14 01:27:21来源:红联作者:ajaxmenu
好像这个QFileInfoListIterator只有 前++,
#include
#include
#include
#include
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
#include

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
#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);
}
文章评论

共有 0 条评论