//递归删除目录和文件
bool removeDir(const QString& dirPath) {
QDir dir(dirPath);
//QFileInfoList fileList = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot, QDir::Name | QDir::DirsFirst);
QFileInfoList fileList = dir.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
foreach(QFileInfo fileInfo, fileList) {
if (fileInfo.isDir()) {
// 如果是目录,递归删除
if (!removeDir(fileInfo.absoluteFilePath())) {
return false; // 子目录删除失败
}
}
else {
// 如果是文件,尝试删除
if (!QFile::remove(fileInfo.absoluteFilePath())) {
qDebug() << "Failed to remove file:" << fileInfo.absoluteFilePath();
return false; // 文件删除失败
}
}
}
// 尝试删除目录
if (dir.rmdir(dirPath)) {
qDebug() << "Directory removed:" << dirPath;
return true;
}
else {
// 强制删除目录
if (dir.removeRecursively()) {
qDebug() << "Directory removed recursively:" << dirPath;
return true;
}
else {
qDebug() << "Failed to remove directory:" << dirPath;
return false;
}
}
}
Qt C++ 递归删除文件目录和文件
于 2024-09-04 14:34:41 首次发布