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