python qt4 cross-platform pyqt4 recycle-bin

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



cross-platform recycle-bin (3)

Me gustaría agregar la siguiente función a mi aplicación PyQt4 multiplataforma: cuando el usuario selecciona algún archivo y selecciona "eliminar", el archivo se moverá a la carpeta Papelera de reciclaje en lugar de eliminarlo permanentemente. Creo que puedo encontrar una solución específica de Windows utilizando la API de Win32 o algo similar, pero me gustaría saber si una operación similar podría ejecutarse en Ubuntu / Linux y MaxOSX, así como a través de métodos PyQt4.



La mejor solución OSX que conozco usa Applescript. Sin embargo, no lo inventé, así que simplemente lo vincularé aquí.

Sería bueno tener un módulo que agrupara las soluciones Win32 / KDE / OSX en una sola, me parece, e importó la correcta a pedido. ¿Es así como resolviste tu problema al final?


Supongo que realmente no hay una solución multiplataforma provista por Qt y no es una tarea totalmente trivial implementar el concepto de basura en Linux, ya que es ligeramente diferente según el administrador de archivos que se esté usando.

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

Bajo Windows puedes usar la API de Win32 como dijiste. Solución de Python disponible aquí .

Mac OS X coloca los archivos en papel en ~ / .Trash de forma similar a otros sistemas operativos * NIX, pero no pude rápidamente buscar en Google la documentación correspondiente. Parece que el archivo de información de basura de OS X es una especie de formato binario y no de texto simple como en Linux.

Symbian no tiene un concepto de escritorio y, por lo tanto, tampoco un concepto de papelera. Podría ser similar para otras plataformas móviles.

EDITAR: El superusuario tiene una discusión que revela que .DS_Store sí almacena información sobre archivos eliminados, pero no detalles sobre el formato.