How can I move file into Recycle Bin / trash on different platforms using PyQt4?

前端 未结 3 1380
渐次进展
渐次进展 2021-02-01 02:36

I would like to add the next feature to my cross-platform PyQt4 application: when user selects some file and select \"remove\" action on it that file will be moved to Recycle Bi

相关标签:
3条回答
  • 2021-02-01 03:02

    It's a good thing you're using Python, I created a library to do just that a while ago:

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

    On PyPI: Send2Trash

    Installation

    Using conda:

    conda install Send2Trash
    

    Using pip:

    pip install Send2Trash
    

    Usage

    Delete file or folders

    from send2trash import send2trash
    send2trash("directory")
    
    0 讨论(0)
  • 2021-02-01 03:03

    I guess there really is no cross-platform solution provided by Qt and it's not a totally trivial task to implement the trash concept in Linux since it's slightly different based on which file manager is in use.

    Here's a site discussing the trash concept in Nautilus and another one for KDE.

    Under Windows you can use the Win32 API like you said. Python solution available here.

    Mac OS X puts the trashed files in ~/.Trash similar to other *NIX OSes, but I couldn't quickly Google any documentation for it. It seems that the OS X trash info file is some kind of binary format and not plain text like in Linux.

    Symbian doesn't have a desktop concept and thus no trashcan concept either. It might be similar for other mobile platforms.

    EDIT: Super User has some discussion revealing that .DS_Store does indeed store information about trashed files, but no specifics about the format.

    0 讨论(0)
  • 2021-02-01 03:13

    The best OSX solution I know uses Applescript. I did not, however, invent it, so I shall simply link to it here.

    It would be nice to have a module that packaged up the Win32/KDE/OSX solutions into one, i feel, and imported the correct one on demand. Is that how you solved your problem in the end?

    0 讨论(0)
提交回复
热议问题