原因:文件属性为只读。
解决方法:
先通过代码取消文件只读属性,再进行删除操作。
QFile file(dirFile);
if (file.exists()) {
// 检查文件是否为只读
QFile::Permissions permissions = file.permissions();
if (permissions & QFile::ReadOwner && !(permissions & QFile::WriteOwner)) {
MyCommon::WriteLog(QString("文件是只读的,尝试取消只读属性"));
// 取消只读属性
if (!file.setPermissions(permissions | QFile::WriteOwner)) {
MyCommon::WriteLog(QString("取消只读属性失败:"));
return false;
}
MyCommon::WriteLog(QString("取消只读属性成功:"));
}
// 尝试删除文件
if (file.remove()) {
// 文件删除成功
MyCommon::WriteLog(QString("文件删除成功:%1").arg(dirFile));
} else {
// 文件删除失败
QString errorMessage = QString("文件删除失败:%1,错误原因:%2")
.arg(dirFile)
.arg(file.errorString()); // 使用 QFile 的错误信息
MyCommon::WriteLog(errorMessage);
return false; // 或者抛出异常
}
}