2012-08-28 51 views
0

我想粉碎回收站数据,但我不知道哪个是最好的方法,所以它是: - 在Windows Vista和7中,文件被重命名为$ R开头,一堆随机字符,也是一个以$ I开头的文件,并创建相同的随机字符,这个文件包含一些关于该文件的信息,包括它的名字。 $ Recycler.bin目录还包含一个Desktop.ini,我不知道它的作用。 - 在下面的视图中,回收文件的管理是使用隐藏的INFO2文件完成的,该文件执行随机文件名和真实名称之间的关联。回收站项目粉碎

现在,假设我想要构建一个可以在vista系统上下运行的应用程序,您将使用哪种常用策略?我的第一个领头是要浏览命名空间,获取Recycler目录的绝对路径覆盖文件中的数据,并从Recycler目录中手动删除它们。之后我还需要通知shell。

您还会使用其他方法吗?

*纠正我,如果我在上述声明中错了。 来源:Herehere

+0

为什么你需要这样做?为什么不只是禁用或清空回收站,因为你的要求将使它无用吗? –

+0

我想在应用程序中完成所有操作。它不会是无用的!谁说我不会再使用它了,用户可以选择使用应用程序来清空回收站中的文件或以旧的方式执行它,但应用程序将提供粉碎日期。 – AlexandruC

回答

2

如何使用IShellFolder接口?

LPITEMIDLIST pidlRecycleBin = NULL; 
SHGetSpecialFolderLocation (m_hWnd, CSIDL_BITBUCKET, &pidlRecycleBin); 
[...] 
+0

关于此问题:SHGetSpecialFolderLocation不受支持,将来可能会更改或不可用。相反,使用SHGetFolderLocation。 (MSDN),无论如何,我明白了,我已经使用了IshellFolder接口,但它只给了我$ R ...文件的名称,如果我删除它们,$ I ...文件将保留在再循环目录,我不想那样。 – AlexandruC

+0

假设我使用它,并将$ R更改为$ I并删除所有文件,但下面的vista操作系统又如何?我已经提出了删除所有文件的选择。 – AlexandruC

+0

为什么不用不同版本的Windows使用不同的解决方案? – Tutankhamen