如何在Qt中删除非空文件夹。
首先要递归删除目录的内容。 这里有一篇博客文章,提供了执行此操作的示例代码。 我已经包括了相关的代码片段。
bool removeDir(const QString & dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists()) {
Q_FOREACH(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden | QDir::AllDirs | QDir::Files, QDir::DirsFirst)) {
if (info.isDir()) {
result = removeDir(info.absoluteFilePath());
}
else {
result = QFile::remove(info.absoluteFilePath());
}
if (!result) {
return result;
}
}
result = QDir().rmdir(dirName);
}
return result;
}
编辑:上面的答案适用于Qt 4。如果你正在使用Qt 5,那么这个功能已经内置在QDir中,可以使用QDir::removeRecursively()方法。
exists()
方法。http://doc.qt.io/qt-4.8/qdir.html#exists-2 - Judge Maygarden