ごみ箱情報の列挙について – プログラミング – Home

ごみ箱情報の列挙について
 
通知
すべてクリア

ごみ箱情報の列挙について


ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

あけましておめでとうございます。
今年もお世話になります。

ごみ箱情報を列挙したいです。
シェル関数でファイル数、ファイルサイズの合計数は取得可能です。

問題は Windows のごみ箱のファイル名、サイズ、削除日時、作成日時など
このような情報はどのようにして取得すればいいんですか?

あと元に戻す場合の方法も知りたいです。
95系とNT系で仕組みが違うものなのでしょうか?
お待ちしています。

開発環境は Windows XP SP3+VC2003(非MFC)
動作環境は Windows 一般(98/Me/XP/Vistaなど)


引用解決済
トピックタグ
FUKU
 FUKU
(@FUKU)
ゲスト
結合: 17年前
投稿: 73
 

あけましておめでとうございます。
全部書くと面倒なので要点だけ。

>問題は Windows のごみ箱のファイル名、サイズ、削除日時、作成日時など
CSIDL_BITBUCKETのLPITEMIDLISTを、IID_IShellFolder2にバインドして列挙します。
ファイル名他、各情報は
IID_IShellFolder2::GetDetailsOf()で取得します。

>あと元に戻す場合の方法も知りたいです。
IContextMenu(又はIContextMenu2)のInvokeCommand()で行います。
その際、CMINVOKECOMMANDINFO::lpVerbにはundeleteを指定すると良いです。

キーワードになるような関数を挙げておきます。
::CoInitialize() / AfxOleInit()
::SHGetDesktopFolder()
::SHGetSpecialFolderLocation()
IID_IShellFolder2::BindToObject()
IID_IShellFolder2::EnumObjects()
IID_IShellFolder2::GetUIObjectOf()
IEnumIDList::Next()
IID_IShellFolder2::GetDetailsOf()
::StrRetToBuf()
::CreatePopupMenu()
IContextMenu(2)::QueryInterface()
IContextMenu(2)::InvokeCommand()
::DestroyMenu()
::ILFree() / ::CoTaskMemFree()でもおk

#後、各インターフェースのRelease()もお忘れなく


返信引用
ぴょぴょ
 ぴょぴょ
(@ぴょぴょ)
ゲスト
結合: 17年前
投稿: 82
Topic starter  

FUKUさん。
情報ありがとうございます。

これから色々と試してみます。
上手くいかなかったらまた書き込みます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました