2012-08-28 62 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