清空回收站 - Python

0 投票
1 回答
1403 浏览
提问于 2025-04-17 16:37

我正在用Python 2.7开发一个文件粉碎工具,专门用于Windows 32系统。其中一个想要的功能是能够粉碎回收站里的所有内容。

对于回收站以外的文件,我们实现了一个“粉碎”功能,这个功能会用垃圾数据覆盖文件内容,然后删除这个文件。

不过,要在回收站的内容上使用这个“粉碎”功能,我们考虑使用这个库。通过这个库,我们可以先恢复被删除的文件,然后再进行粉碎。但是,这种方法不太合适,因为:

  1. 这可能会让用户感到困惑,因为在粉碎回收站内容的时候,用户可能会看到这些内容又出现在文件系统里。

  2. 在恢复文件的过程中,Windows会弹出“正在恢复”的对话框,这样也不好。

有没有什么建议可以实现一个回收站粉碎工具呢?

1 个回答

2

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

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)

撰写回答