Comment puis-je déplacer le fichier dans la Corbeille / poubelle sur différentes plates-formes en utilisant PyQt4?

StackOverflow https://stackoverflow.com/questions/3628517

Question

Je voudrais ajouter la fonction suivante à ma demande PyQt4 multi-plateforme: lorsque l'utilisateur sélectionne un certain fichier et sélectionnez l'action à ce que le fichier « remove » sera déplacé dans le dossier Corbeille au lieu d'être permantly enlevé. Je pense que je peux trouver une solution spécifique à Windows en utilisant l'API Win32 ou quelque chose de similaire, mais je voudrais savoir opération similaire ne pourrait être exécuté aussi bien sur Ubuntu / Linux et MaxOSX via des méthodes PyQt4.

Était-ce utile?

La solution

Il est une bonne chose que vous utilisez Python, j'ai créé une bibliothèque pour faire cela il y a quelque temps:

http: //www.hardcoded. net / articles / envoyer des fichiers à ordures sur-tout-platforms.htm

Sur PyPI: Send2Trash

Installation

Utilisation Conda:

conda install Send2Trash

Utilisation de pip:

pip install Send2Trash

Utilisation

Supprimer le fichier ou dossiers

from send2trash import send2trash
send2trash("directory")

Autres conseils

Je suppose qu'il n'y a vraiment pas de solution multi-plateforme fournie par Qt et ce n'est pas une tâche tout à fait trivial à mettre en œuvre le concept de déchets dans Linux car il est un peu différent basé sur lequel le gestionnaire de fichiers est utilisé.

Voici un site de discuter du concept de poubelle dans Nautilus et un autre pour KDE .

Sous Windows, vous pouvez utiliser l'API Win32 comme vous avez dit. solution Python ici .

Mac OS X met les fichiers saccagés dans ~ / .Trash semblable à d'autres * NIX OSes, mais je ne pouvais pas rapidement Google documentation pour elle. Il semble que le fichier info trash OS X est une sorte de format binaire et texte non comme simple sous Linux.

Symbian ne dispose pas d'un concept de concept de bureau et donc pas non plus trashcan. Il pourrait être similaire pour d'autres plates-formes mobiles.

EDIT: super l'utilisateur a une discussion révélant que .DS_Store ne stocke en effet des informations sur les fichiers saccagés, mais pas de détails sur le format.

scroll top