You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用QFile::moveToTrash将整个目录移动到回收站

能否直接用QFile::moveToTrash将整个目录移动到回收站

结论

可以,QFile::moveToTrash()原生支持传入目录路径,直接调用即可将整个目录(包含内部所有子文件、子目录)批量移入系统回收站,不需要单独遍历处理单个文件。

版本要求

该特性从Qt 5.15版本开始正式提供,低于该版本的Qt环境无法使用这个特性。

代码说明

你给出的示例代码逻辑完全正确,已经可以实现需求:

// "backup" 是程序运行目录下的文件夹
//QDir("backup").removeRecursively();
QFile::moveToTrash("backup");
ui->btnDeleteAllBackups->setEnabled(false);
refreshDiskUsage();
qInfo().noquote() << "已删除备份";

你注释掉的QDir::removeRecursively()是永久删除目录无法恢复,替换为QFile::moveToTrash()后即可实现可恢复的回收站删除效果。

使用建议

  • 调用前可以先判断目录是否存在、当前程序是否持有目标目录的读写权限,避免操作失败
  • 可以通过函数返回值判断操作结果,示例如下:
bool isSuccess = QFile::moveToTrash("backup");
if (!isSuccess) {
    // 处理失败逻辑,可通过QFile::errorString()获取错误信息
}

内容的提问来源于stack exchange,提问作者PietR26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:18:03