天天看點

Qt 清空檔案夾,删除非空檔案夾

void clearFiles(const QString &folderFullPath)

{

QDir dir(folderFullPath);

dir.setFilter(QDir::Files);

int fileCount = dir.count();

for (int i = 0; i < fileCount; i++)

dir.remove(dir[i]);

}

void clearFolder(const QString &folderFullPath)

{

QDir             dir(folderFullPath);

QFileInfoList    fileList;

QFileInfo        curFile;

QFileInfoList    fileListTemp;

int32            infoNum;

int32            i;

int32            j;

fileList=dir.entryInfoList(QDir::Dirs|QDir::Files

    |QDir::Readable|QDir::Writable

|QDir::Hidden|QDir::NoDotAndDotDot

,QDir::Name);

while(fileList.size() > 0)

{

infoNum = fileList.size();

for(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());

fileListTemp = dirTemp.entryInfoList(QDir::Dirs | QDir::Files

| QDir::Readable | QDir::Writable

| QDir::Hidden | QDir::NoDotAndDotDot

, QDir::Name);

if(fileListTemp.size() == 0)

{

dirTemp.rmdir(".");

fileList.removeAt(i);

}

else

{

for(j = 0; j < fileListTemp.size(); j++)

{

if(!(fileList.contains(fileListTemp[j])))

{

fileList.append(fileListTemp[j]);

}

}

}

}

}

}

dir.rmdir(".");

}

另:如果覺得粘貼網頁上的文字不友善可以下載下傳cpp源檔案,下載下傳位址http://download.csdn.net/detail/lusirking/9551144

繼續閱讀