清空回收站 - Python
我正在用Python 2.7开发一个文件粉碎工具,专门用于Windows 32系统。其中一个想要的功能是能够粉碎回收站里的所有内容。
对于回收站以外的文件,我们实现了一个“粉碎”功能,这个功能会用垃圾数据覆盖文件内容,然后删除这个文件。
不过,要在回收站的内容上使用这个“粉碎”功能,我们考虑使用这个库。通过这个库,我们可以先恢复被删除的文件,然后再进行粉碎。但是,这种方法不太合适,因为:
这可能会让用户感到困惑,因为在粉碎回收站内容的时候,用户可能会看到这些内容又出现在文件系统里。
在恢复文件的过程中,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)