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

有帮助吗?

解决方案

这就是你使用Python一件好事,我创建了一个图书馆,只是做了一段时间前:

HTTP://www.hardcoded。净/文章/发送,文件到垃圾桶上,全platforms.htm

在的PyPI: Send2Trash

<强>安装

使用康达:

conda install Send2Trash

使用PIP:

pip install Send2Trash

<强>用法

删除文件或文件夹

from send2trash import send2trash
send2trash("directory")

其他提示

我想真的是Qt提供任何跨平台解决方案,它不是实现在Linux中垃圾的概念,因为它的基础上,其文件管理器在使用中的略有不同的是完全简单的任务。

下面是一个网站在鹦鹉螺讨论垃圾桶概念和另一个用于 KDE

在Windows环境下,你可以像你说的使用Win32 API。 Python的溶液使用这里。

的Mac OS X会将丢弃的文件在〜/ .Trash类似于其他* NIX的操作系统,但我不能快速谷歌它的任何文件。看来,OS X的垃圾信息文件是某种二进制格式,而不是纯文本就像Linux中。

的Symbian不具有桌面概念,因此没有垃圾桶概念任一。这可能是其他移动平台类似。

编辑:超级用户有一些讨论,揭示了.DS_Store确实存储有关丢弃文件的信息,但没有关于格式的细节。

最佳 OSX 解决方案 我知道使用Applescript。然而,我并没有发明它,所以我将在这里简单地链接到它。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top