//删除文件夹
删除文件夹需要注意的是,如果文件夹不是空的,就删除不掉。
所以,思路就是:
1.遍历文件夹,删除所有文件和子文件夹,文件直接删掉
2.如果是子文件夹,就再次遍历调用,删除子文件夹中所有文件,然后再删除自己
3.等待所有子文件夹都删除了,再删除掉文件夹
bool deleteDir(const QString &path)
{
if (path.isEmpty())
{
return false;
}
QDir dir(path);
if(!dir.exists())
{
return true;
}
dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); //设置过滤
QFileInfoList fileList = dir.entryInfoList(); // 获取所有的文件信息
foreach (QFileInfo file, fileList)
{ //遍历文件信息
if (file.isFile())
{ // 是文件,删除
file.dir().remove(file.fileName());
}else
{ // 递归调用函数,删除子文件夹
deleteDir(file.absoluteFilePath());
}
}
return dir.rmpath(dir.absolutePath()); // 这时候文件夹已经空了,再删除文件夹本身
}