关于Windows:回收站-Python

Shred Recycle Bin - Python

我正在使用Python 2.7开发适用于Windows 32的文件粉碎机。所需功能之一是能够切碎所有回收站中的物品。

对于其他文件,在回收站之外,我们实现了" shred "函数,该函数用垃圾覆盖文件内容,并删除该文件。

但是,为了在回收站内容上使用此"切细"功能,我们考虑使用此库。使用此库,我们可以先取消删除(还原)该项目,然后将其切碎。但是,此方法不适合,因为:

  • 这可能会使将回收站内容粉碎的用户感到困惑,因为他可能会看到在粉碎时文件系统中再次出现回收内容。

  • 在运行取消删除功能时,Windows将显示" Resotring "对话框。这是不可取的。

  • 是否有关于实施回收站碎纸机的建议?


    您可以使用Pywin32的shell模块获取真实路径:

    1
    2
    3
    4
    5
    6
    7
    8
    from win32com.shell import shell, shellcon
    idl = shell.SHGetSpecialFolderLocation(0, shellcon.CSIDL_BITBUCKET)
    d = shell.SHGetDesktopFolder()
    sf = d.BindToObject(idl, None, shell.IID_IShellFolder)

    for i in sf:
        print sf.GetDisplayNameOf(i, shellcon.SHGDN_NORMAL)
        print sf.GetDisplayNameOf(i, shellcon.SHGDN_FORPARSING)