Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用PyQt4将文件移动到不同平台上的回收站/垃圾箱?_Python_Qt4_Cross Platform_Pyqt4_Recycle Bin - Fatal编程技术网

Python 如何使用PyQt4将文件移动到不同平台上的回收站/垃圾箱?

Python 如何使用PyQt4将文件移动到不同平台上的回收站/垃圾箱?,python,qt4,cross-platform,pyqt4,recycle-bin,Python,Qt4,Cross Platform,Pyqt4,Recycle Bin,我想为我的跨平台PyQt4应用程序添加下一个功能:当用户选择某个文件并对其选择“删除”操作时,该文件将被移动到回收站文件夹,而不是永久删除。我想我可以用Win32 API或类似的东西找到Windows特定的解决方案,但我想知道类似的操作是否也可以通过PyQt4方法在Ubuntu/Linux和MaxOSX上执行。我想Qt确实没有提供跨平台的解决方案,在Linux中实现垃圾桶概念并不是一件简单的任务,因为它与使用的文件管理器略有不同 这里有一个网站在讨论中的垃圾概念,另一个是关于垃圾的 在Windo

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

我想Qt确实没有提供跨平台的解决方案,在Linux中实现垃圾桶概念并不是一件简单的任务,因为它与使用的文件管理器略有不同

这里有一个网站在讨论中的垃圾概念,另一个是关于垃圾的

在Windows下,您可以像您所说的那样使用Win32 API

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

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

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

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


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

使用Python是件好事,我刚才创建了一个库来实现这一点:

关于PyPI:

安装

使用conda:

conda install Send2Trash
使用pip:

pip install Send2Trash
用法

删除文件或文件夹

from send2trash import send2trash
send2trash("directory")

基于ctypes的库的新版本看起来非常方便。谢谢这太棒了。在OSX上,它使用“放回”选项(右键单击垃圾箱中的文件时)。谢谢应将其添加到标准库中。有人知道提出这种建议的适当机制吗?我在bugs.python.org上写了一些东西,但我觉得这不是一个合适的地方:它还向垃圾桶发送文件夹,以安装Send2trashf,供那些发现这个问题并使用PyQt5而不是PyQt4的人使用:在Qt5.15中添加了()。我希望这有帮助!