Wie kann ich Datei verschieben in Papierkorb / trash auf verschiedenen Plattformen mit PyQt4?
Hinzufügen möchte ich, dass die nächste Funktion auf meinem cross-Plattform-PyQt4-Anwendung: wenn der Benutzer wählt eine Datei und wählen Sie "entfernen" - Aktion auf, dass die Datei verschoben wird, um die Papierkorb-Ordner, anstatt Sie permanent entfernt. Ich denke, dass ich finden kann, die Windows-spezifische Lösung, die mithilfe von Win32-API oder etwas ähnliches, aber ich würde gerne wissen, hat eine ähnliche operation ausgeführt werden konnte, ist auf Ubuntu/Linux und MaxOSX sowie über PyQt4 Methoden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es eine gute Sache ist, die Sie mit Python habe ich eine Bibliothek, genau das zu tun vor einer Weile:
http://www.hardcoded.net/articles/send-files-to-trash-on-all-platforms.htm
Auf PyPI: Send2Trash
Installation
Mit conda:
Verwendung von pip:
Nutzung
Löschen von Dateien oder Ordnern
Ich denke, es ist wirklich kein cross-Plattform-Lösung von Qt und es ist nicht ganz trivial zu implementieren, das trash-Konzept in Linux, da ist es etwas anders, basierend auf die Datei-manager verwendet wird.
Hier ist ein Ort der Erörterung der trash-Konzept in Nautilus und ein weiteres für KDE.
Unter Windows können Sie mit der Win32-API, wie Sie sagte. Python-Lösung verfügbar hier.
Mac OS X stellt die gelöschte Dateien in ~/.Papierkorb-ähnlich wie in anderen *NIX-Betriebssystemen, aber ich konnte nicht schnell Google alle Unterlagen für Sie. Es scheint, dass die OS-X-Papierkorb-info-Datei ist eine Art von Binär-format und nicht Klartext wie in Linux.
Symbian nicht über ein desktop-Konzept und somit keine Mülleimer-Konzept entweder. Es kann ähnlich auch für andere mobile Plattformen.
EDIT: Super User hat einige Diskussion aufschlussreich, dass .DS_Store tatsächlich speichern von Informationen über gelöschte Dateien, aber keine Einzelheiten über das format.
Den am besten OSX Lösung ich weiß, verwendet Applescript. Ich wollte allerdings nicht selbst erfunden, also muss ich einfach verlinken es hier.
Wäre es schön, ein Modul zu haben, die verpackt Win32/KDE/OSX-Lösungen in einer, finde ich, und importiert die richtige auf Nachfrage. Ist, dass, wie du dein problem gelöst am Ende?