使用 Qt 删除文件夹及其所有内容?
Deleting a folder and all its contents with Qt?
如何使用 Qt
删除文件夹及其所有内容?
我尝试使用:
QFile::remove();
但是好像一次只删除一个文件。
对于 Qt5 及更高版本有 QDir::removeRecursively
:
QDir dir("C:\Path\To\Folder\Here");
dir.removeRecursively();
对于 Qt4 或更低版本,您可以使用删除每个文件的递归函数:
bool removeDir(const QString & dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists(dirName)) {
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 = dir.rmdir(dirName);
}
return result;
}
如所述here。
如何使用 Qt
删除文件夹及其所有内容?
我尝试使用:
QFile::remove();
但是好像一次只删除一个文件。
对于 Qt5 及更高版本有 QDir::removeRecursively
:
QDir dir("C:\Path\To\Folder\Here");
dir.removeRecursively();
对于 Qt4 或更低版本,您可以使用删除每个文件的递归函数:
bool removeDir(const QString & dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists(dirName)) {
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 = dir.rmdir(dirName);
}
return result;
}
如所述here。