¿Cómo puedo mover el archivo a la papelera de reciclaje / basura en diferentes plataformas usando PyQt4?

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

Pregunta

Me gustaría añadir la siguiente función para mi aplicación multiplataforma PyQt4: cuando el usuario selecciona algún archivo y seleccione la acción de "extracción" en la que ese archivo se moverá a la carpeta de la papelera de reciclaje en lugar de ser eliminado permantly. Creo que puedo encontrar la solución específica de Windows utilizando la API de Win32 o algo similar, pero me gustaría saber operación similar no podría ser ejecutado en Ubuntu / Linux y MaxOSX así a través de métodos PyQt4.

¿Fue útil?

Solución

Es una cosa buena que está utilizando Python, he creado una biblioteca para hacer precisamente eso hace un tiempo:

http: //www.hardcoded. / articulos / net send-archivos-a-basura-en-todo-platforms.htm

En PyPI: Send2Trash

instalación

El uso de Conda:

conda install Send2Trash

El uso de pepita:

pip install Send2Trash

Uso

Borrar archivo o carpetas

from send2trash import send2trash
send2trash("directory")

Otros consejos

supongo que realmente no hay solución multiplataforma proporcionada por Qt y no es una tarea trivial totalmente para poner en práctica el concepto de basura en Linux, ya que es un poco diferente en base al cual el administrador de archivos está en uso.

Aquí hay un sitio de discutir el concepto de basura en Nautilus y otro para KDE .

En un entorno Windows puede utilizar la API de Win32 como usted ha dicho. Python disponible aquí .

Mac OS X pone los archivos de la papelera en ~ / .Trash similar a otros sistemas operativos * NIX, pero no pude rápidamente Google toda la documentación para ello. Parece que el archivo de información de basura OS X es una especie de formato binario y de texto no llanura como en Linux.

Symbian no tiene un concepto de escritorio y el concepto por lo tanto no hay papelera tampoco. Puede ser que sea similar para otras plataformas móviles.

EDIT: Súper usuario tiene una cierta discusión que revela que .DS_Store en efecto, almacenar información sobre los archivos de la papelera, pero no hay detalles sobre el formato.

La mejor solución OSX sé usos Applescript. Yo no, sin embargo, inventado yo, así que simplemente voy a enlazar con él aquí.

Sería bueno tener un módulo que empaqueta las soluciones Win32 / KDE / OSX en una sola, me siento, y se importa la correcta bajo demanda. ¿Es así como usted ha resuelto su problema en el final?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top