Wie kann ich Datei in Papierkorb / trash auf verschiedenen Plattformen mit PyQt4 bewegen?
-
26-09-2019 - |
Frage
würde Ich mag die nächste Funktion meiner Cross-Plattform PyQt4 Anwendung hinzuzufügen: wenn der Benutzer wählt einige Datei und wählen Sie „Entfernen“ Aktion darauf, dass Datei statt auf Papierkorb-Ordner verschoben werden permantly entfernt zu werden. Ich denke, ich kann für spezielle Windows-Lösung unter Verwendung von Win32-API oder etwas ähnliches finden, aber ich möchte wissen, ist ein ähnlicher Betrieb auf Ubuntu / Linux ausgeführt werden konnte und MaxOSX auch über PyQt4 Methoden.
Lösung
Es ist eine gute Sache, die Sie Python verwenden, habe ich eine Bibliothek nur zu tun, dass vor einer Weile:
http: //www.hardcoded. net / articles / send-files-to-trash-on-all-platforms.htm
Auf PyPI: Send2Trash
Installation
Mit Conda:
conda install Send2Trash
Mit pip:
pip install Send2Trash
Verwendung
Datei löschen oder Ordner
from send2trash import send2trash
send2trash("directory")
Andere Tipps
Ich denke, es ist wirklich keine Cross-Plattform-Lösung von Qt zur Verfügung gestellt und es ist nicht eine völlig triviale Aufgabe, den Müll Konzept in Linux zu implementieren, da es etwas anders ist, basierend auf welcher Datei-Manager wird verwendet.
Hier ist ein Ort der Diskussion der Müll-Konzept in Nautilus und eine weitere für KDE .
Unter Windows können Sie die Win32-API verwenden, wie Sie gesagt haben. Python Lösung hier zur Verfügung.
Mac OS X setzt die trashed Dateien in ~ / .Trash ähnlich zu anderen * NIX OSes, aber ich konnte nicht schnell Google alle Unterlagen für sie. Es scheint, dass die OS X Trash-Info-Datei eine Art Binärformat und nicht Klartext wie in Linux.
Symbian kein Desktop-Konzept hat und somit keine Mülltonne Konzept entweder. Es könnte für andere mobile Plattformen ähnlich sein.
EDIT: Super- Benutzer einige Diskussionen hat enthüllt, dass .DS_Store tatsächlich Informationen speichert über trashed Dateien, aber keine Einzelheiten über das Format.