将目录移至垃圾箱

Posted

技术标签:

【中文标题】将目录移至垃圾箱【英文标题】:Move a directory to trash 【发布时间】:2021-10-18 08:08:09 【问题描述】:

是否可以将整个目录移动到垃圾箱(如文件 QFile::moveToTrash)? 有一个文件夹有很多文件,当将每个单独的文件移动到垃圾箱时会让人感到困惑。

编辑:

        // "backup" is a folder in the application directory
        //QDir("backup").removeRecursively();
        QFile::moveToTrash("backup");
        ui->btnDeleteAllBackups->setEnabled(false);
        refreshDiskUsage();
        qInfo().noquote() << "Deleted backups";

【问题讨论】:

【参考方案1】:

这很容易。只需在您的目录中使用QFile::moveToTrash(path_to_dir);,就像使用文件一样。这一行会将整个目录及其所有内容移动到垃圾箱。这适用于 Qt 5.15.2。一些旧版本的 Qt(主要在 Linux 上)存在一些错误,因此请确保您拥有可能的最新版本。

但请注意,某些驱动器(闪存盘)通常不支持垃圾箱,内容将被永久删除。

【讨论】:

运行后文件夹不在垃圾箱中,而是完全删除(我有最新的Qt版本)。 您是否从有垃圾箱的磁盘中删除了它?你在哪个 Windows 上? 是的,我的磁盘有一个垃圾箱。我有 Windows 10。QFile::moveToTrash 可以使用文件。 在我的电脑上一切正常。看看这段代码pastebin.com/3dz4pHbX 它为我输出truetruetrue。当我打开回收站时,我可以看到它在那里,当我单击恢复时,它会正确恢复,包括包含的文件。 如果您在计算机上重新测试了两次,但仍然无法正常工作,请向bugreports.qt.io/secure/Dashboard.jspa报告错误【参考方案2】:

您可能正在寻找的是QDir::removeRecursively。

删除目录,包括其所有内容。

成功则返回真,否则返回假。

请记住,这只会报告操作是否成功。单独删除内容将使您有机会向用户显示进度对话框并更具体地报告错误。

【讨论】:

这是我目前使用的功能。但它会“永远”删除目录,我想将目录/文件夹移动到 Windows 垃圾箱。也许有垃圾存在的路径? 我明白了,感谢您的澄清!

以上是关于将目录移至垃圾箱的主要内容,如果未能解决你的问题,请参考以下文章

将目录移动到垃圾箱

Python 3:通过 uid (imaplib) 将电子邮件移至垃圾箱

如何将垃圾邮件移至垃圾邮件文件夹? [关闭]

如何避免帖子因条件而被移至垃圾箱?

Mandrill - 由于 [警告:邮件包含重定向 URL 内容],邮件被移至垃圾邮件

移动到垃圾箱时的 URL 书签数据