Domanda

Vorrei aggiungere la funzionalità accanto al mio cross-piattaforma applicativa PyQt4: quando l'utente seleziona un certo file e selezionare l'azione "Rimuovi" su di esso che il file verrà spostato nella cartella Cestino anziché essere rimosso permantly. Credo di poter trovare una soluzione specifica per Windows utilizzando API Win32 o qualcosa di simile, ma mi piacerebbe sapere non simile operazione potrebbe essere eseguita su Ubuntu / Linux e MaxOSX pure attraverso metodi PyQt4.

È stato utile?

Soluzione

E 'una buona cosa che si sta utilizzando Python, ho creato una libreria di fare proprio questo qualche tempo fa:

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

In PyPI: Send2Trash

Installazione

Utilizzando Conda:

conda install Send2Trash

Utilizzando pip:

pip install Send2Trash

Utilizzo

file o cartelle Elimina

from send2trash import send2trash
send2trash("directory")

Altri suggerimenti

Credo che non c'è davvero nessuna soluzione multi-piattaforma fornita da Qt e non è un compito del tutto banale per l'attuazione del concetto di spazzatura in Linux dal momento che è leggermente diverso in base al quale gestore di file è in uso.

Ecco un sito discutendo il concetto di trash in Nautilus e un altro per KDE .

In Windows è possibile utilizzare l'API Win32 come hai detto. Python disponibile qui .

Mac OS X mette i file cestinati in ~ / Trash simile ad altri sistemi operativi * nix, ma non ho potuto rapidamente Google documentazione per esso. Sembra che il file di informazioni spazzatura OS X è una sorta di formato binario e il testo non pianura come in Linux.

Symbian non ha un concetto del desktop e il concetto quindi non bidone neanche. Potrebbe essere simile per altre piattaforme mobili.

EDIT: Super utente ha qualche discussione rivelando che .DS_Store effettivamente memorizzare le informazioni sui file cestinati, ma non specifiche sul formato.

Il soluzione migliore OSX so usi Applescript. Non ho, però, invento, quindi mi limiterò link ad esso qui.

Sarebbe bello avere un modulo che confezionato le soluzioni Win32 / KDE / OSX in uno, mi sento, ed importato quella corretta su richiesta. È così che risolto il problema, alla fine?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top