【问题标题】:How can I move file into Recycle Bin / trash on different platforms using PyQt4?如何使用 PyQt4 将文件移动到不同平台上的回收站/垃圾箱?
【发布时间】:2011-04-07 09:50:45
【问题描述】:

我想为我的跨平台 PyQt4 应用程序添加下一个功能:当用户选择某个文件并对其选择“删除”操作时,该文件将被移动到回收站文件夹而不是被永久删除。我想我可以使用 Win32 API 或类似的东西找到特定于 Windows 的解决方案,但我想知道类似的操作是否可以通过 PyQt4 方法在 Ubuntu/Linux 和 MaxOSX 上执行。

【问题讨论】:

标签: python qt4 cross-platform pyqt4 recycle-bin


【解决方案1】:

您使用 Python 是件好事,我不久前创建了一个库来做到这一点:

http://www.hardcoded.net/articles/send-files-to-trash-on-all-platforms.htm

在 PyPI 上:Send2Trash

安装

使用 conda:

conda install Send2Trash

使用点子:

pip install Send2Trash

用法

删除文件或文件夹

from send2trash import send2trash
send2trash("directory")

【讨论】:

  • 你的库的基于 ctypes 的新版本看起来非常方便。谢谢
  • 这太棒了。在 OS X 上,它与“放回”选项一起使用(右键单击垃圾箱中的文件时)。谢谢!
  • 这应该被添加到标准库中。有谁知道提出这种建议的适当机制?我在 bugs.python.org 上写了一些东西,但我觉得这不是合适的地方:bugs.python.org/issue24185
  • 它还会将文件夹发送到垃圾箱
  • 康达安装 Send2Trash
【解决方案2】:

我想 Qt 确实没有提供跨平台的解决方案,而且在 Linux 中实现垃圾概念也不是一件容易的事,因为它会根据使用的文件管理器略有不同。

这是一个在Nautilus 和另一个KDE 讨论垃圾概念的网站。

在 Windows 下,您可以像您说的那样使用 Win32 API。 Python solution available here.

Mac OS X 将垃圾文件放在 ~/.Trash 中,类似于其他 *NIX 操作系统,但我无法快速谷歌搜索它的任何文档。似乎 OS X 垃圾信息文件是某种二进制格式,而不是像 Linux 中的纯文本。

Symbian 没有桌面概念,因此也没有垃圾桶概念。其他移动平台可能类似。

编辑:Super User 有一些讨论表明 .DS_Store 确实存储了有关已删除文件的信息,但没有关于格式的详细信息。

【讨论】:

    【解决方案3】:

    我知道的best OSX solution 使用Applescript。然而,我并没有发明它,所以我将在这里简单地链接到它。

    如果有一个模块将 Win32/KDE/OSX 解决方案打包成一个模块,我觉得,并按需导入正确的模块,那就太好了。你最后就是这样解决问题的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2014-06-18
      • 2015-01-23
      • 2018-06-08
      • 2011-10-10
      • 1970-01-01
      相关资源
      最近更新 更多