Qt 遍历目录并删除目录下所有文件

来源:互联网 发布:新浪股票数据api 编辑:程序博客网 时间:2024/05/17 22:16

前言

一个简单的算法接口封装,功能是将文件夹下所有文件删除(文件/目录),实现逻辑是通过循环的方式,一只遍历该目录下的文件类型,根据不同的文件类型来决定如何删除。

正文

来看看源码,接口已封装好,直接拿来用就好

bool ALUtility::removeFolderContent(const QString &folderDir){    QDir dir(folderDir);    QFileInfoList fileList;    QFileInfo curFile;    if(!dir.exists())  {return false;}//文件不存,则返回false    fileList=dir.entryInfoList(QDir::Dirs|QDir::Files                               |QDir::Readable|QDir::Writable                               |QDir::Hidden|QDir::NoDotAndDotDot                               ,QDir::Name);    while(fileList.size()>0)    {        int infoNum=fileList.size();        for(int i=infoNum-1;i>=0;i--)        {            curFile=fileList[i];            if(curFile.isFile())//如果是文件,删除文件            {                QFile fileTemp(curFile.filePath());                fileTemp.remove();                fileList.removeAt(i);            }            if(curFile.isDir())//如果是文件夹            {                QDir dirTemp(curFile.filePath());                QFileInfoList fileList1=dirTemp.entryInfoList(QDir::Dirs|QDir::Files                                                              |QDir::Readable|QDir::Writable                                                              |QDir::Hidden|QDir::NoDotAndDotDot                                                              ,QDir::Name);                if(fileList1.size()==0)//下层没有文件或文件夹                {                    dirTemp.rmdir(".");                    fileList.removeAt(i);                }                else//下层有文件夹或文件                {                    for(int j=0;j<fileList1.size();j++)                    {                        if(!(fileList.contains(fileList1[j])))                            fileList.append(fileList1[j]);                    }                }            }        }    }    return true;}

了。

阅读全文
0 0
原创粉丝点击