代码之家  ›  专栏  ›  技术社区  ›  bialix

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

  •  27
  • bialix  · 技术社区  · 14 年前

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

    3 回复  |  直到 6 年前
        1
  •  54
  •   Miladiouss    6 年前

    你在使用python是件好事,不久前我创建了一个库来实现这一点:

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

    论PyPI: Send2Trash

    安装

    使用康达:

    conda install Send2Trash
    

    使用PIP:

    pip install Send2Trash
    

    用法

    删除文件或文件夹

    from send2trash import send2trash
    send2trash("directory")
    
        2
  •  2
  •   Community Paul Sweatte    7 年前

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

    这是一个讨论垃圾概念的网站 Nautilus 另一个是为了 KDE .

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

    MacOSX把这些文件放进~/.trash中,类似于其他*nix操作系统,但我无法快速搜索到任何文档。似乎OSX垃圾信息文件是某种二进制格式,而不是像Linux那样的纯文本。

    塞班没有桌面概念,因此也没有垃圾桶概念。对于其他移动平台来说可能是类似的。

    编辑: Super User 有一些讨论表明.ds_store确实存储了关于被丢弃文件的信息,但是没有关于格式的细节。

        3
  •  1
  •   dan mackinlay    13 年前

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

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