2009-03-05 38 views
5

Estoy intentando escribir un módulo de python para mover archivos a la 'Papelera de reciclaje' tanto en Mac como en PC.¿Cómo funciona la Papelera de reciclaje Vista?

¿Hay alguna manera, solo desde la línea de comandos (y sí, me refiero a usar absolutamente no C#/C++/etc) mover un archivo a la Papelera de reciclaje y hacer que parezca un archivo destruido arrastrando y soltando (o eliminado a través de SHFileOperation, etc.).

Respuesta

5

Debe utilizar la función SHFileOperation o, en Vista, la interfaz IFileOperation (como se indica en gix a continuación).

De las observaciones sobre SHFileOperation:

Cuando se utiliza para eliminar un archivo, SHFileOperation elimina permanentemente el archivo a menos que establezca la bandera FOF_ALLOWUNDO en el miembro fFlags de la estructura apuntada por SHFILEOPSTRUCT lpFileOp. Establecer esa bandera envía el archivo a la Papelera de reciclaje. Si desea simplemente eliminar un archivo y garantizar que no se coloca en la Papelera de reciclaje, use DeleteFile.

+1

¿Por qué está describiendo un método Win32/COM para hacer esto, cuando la pregunta pide una forma de Python, excluyendo explícitamente C#, C++, etc.? –

+0

Seguramente debe haber una forma de ejecutar llamadas al sistema desde Python. Si no, entonces es una herramienta rota para empezar. – Joey

5

Mover archivos a la Papelera de reciclaje de Windows es una operación de Shell. Las operaciones de shell se ejecutan a través de COM. Para versiones anteriores de Windows, está el SHFileOperation interface. Desde Vista existe el nuevo IFileOperation interface.

Cuestiones relacionadas