[Tutor] Recycle bin Windows XP - List or empty the bin
Tim Golden
mail at timgolden.me.uk
Sat Jan 31 12:27:09 CET 2009
Dominique wrote:
> Googling around this led me to try the following (to empty the bin):
>
> from win32com.shell import shell
> shell.SHEmptyRecycleBin()
>
> Unfortunately, this doesn't work.
> The traceback gives me :
> TypeError: SHEmptyRecycleBin() takes exactly 3 arguments (0 given)
>
> So, I tried something I found somewhere:
>
> from win32com.shell import shell
> shell.SHEmptyRecycleBin(
> #No confirmation dialog when emptying the recycle bin
> SHERB_NOCONFIRMATION = 0x00000001,
> #No progress tracking window during the emptying of the recycle bin
> SHERB_NOPROGRESSUI = 0x00000001),
> #No sound whent the emptying of the recycle bin is complete
> SHERB_NOSOUND = 0x00000004
> )
>
> This doesn't work either, giving me the following traceback:
> TypeError: SHEmptyRecycleBin() takes no keyword arguments
>
> Ooops! The 2 tracebacks are contradictory.
Well, not contradictory; more complementary. The help
for shell.SHEmptyRecycleBin gives us 3 params:
hwnd - parent window (or None)
path - null-terminated root path or None for all recycle bins
flags - some combination of SHERB constants
Since it seems the args can't be keyword args (and since
your example above seems to be more of a list of constants
than a list of args), try this to empty the c-drive bin.
Obviously you can play around with the constants by
or-ing them together to give you that final arg:
<code>
from win32com.shell import shell, shellcon
# flags = shellcon.SHERB_NOSOUND | shellcon.SHERB_NOCONFIRMATION
flags = 0
shell.SHEmptyRecycleBin (None, "c:\\", flags)
</code>
You might want to look at my winshell module which wraps
some of the shell module funcs in a slightly more Pythonic
wrapper. At the very least, you can see some working source
code:
http://timgolden.me.uk/python/winshell.html
TJG
More information about the Tutor
mailing list