QDir中有函数可以删除文件夹,但是只能删除空文件夹。于是使用了最原始的方法:遍历文件夹逐个删除文件。以下代码在Qt 5.1.0中测试通过。返回true表示文件夹不存在或被成功删除。
bool DeleteDirectory(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 fi, fileList)
{
if (fi.isFile())
fi.dir().remove(fi.fileName());
else
DeleteDirectory(fi.absoluteFilePath());
}
return dir.rmpath(dir.absolutePath());
}
十分感谢,可以直接用。