5

I am trying to write a python module to move files to the 'Recycle Bin' on both Mac and PC.

Is there a way, only from the commandline (and yes, I mean using absloutly no C#/C++/etc) to move a file into the Recycle Bin, and have it appear as a file trashed by drag and drop (or deleted via SHFileOperation, etc).

FarMcKon
  • 161
  • 1
  • 5

4 Answers4

5

You should use the SHFileOperation function or, on Vista, the IFileOperation interface (as pointed out by gix below).

From the remarks on SHFileOperation:

When used to delete a file, SHFileOperation permanently deletes the file unless you set the FOF_ALLOWUNDO flag in the fFlags member of the SHFILEOPSTRUCT structure pointed to by lpFileOp. Setting that flag sends the file to the Recycle Bin. If you want to simply delete a file and guarantee that it is not placed in the Recycle Bin, use DeleteFile.

Joey
  • 344,408
  • 85
  • 689
  • 683
  • 1
    Why are you describing a Win32/COM method of doing this, when the question asks for a Python way, explicitly excluding C#, C++, etc? – Jakob Borg Jun 14 '10 at 18:45
  • There surely must be a way of executing system calls from Python. If not, then it's a broken tool to begin with. – Joey Jun 14 '10 at 19:07
5

Moving files to Windows' Recycle Bin is a Shell operation. Shell operations are run via COM. For older Windows versions there is the SHFileOperation interface. Since Vista there is the new IFileOperation interface.

gix
  • 5,737
  • 5
  • 34
  • 40
3

I have written a Python library that does precisely that. You might want to check it out.

Virgil Dupras
  • 2,634
  • 20
  • 22
-1

It looks like this mailing list entry might help you.

Dan Walker
  • 7,123
  • 6
  • 30
  • 24