あけましておめでとうございます。
今年もお世話になります。
ごみ箱情報を列挙したいです。
シェル関数でファイル数、ファイルサイズの合計数は取得可能です。
問題は Windows のごみ箱のファイル名、サイズ、削除日時、作成日時など
このような情報はどのようにして取得すればいいんですか?
あと元に戻す場合の方法も知りたいです。
95系とNT系で仕組みが違うものなのでしょうか?
お待ちしています。
開発環境は Windows XP SP3+VC2003(非MFC)
動作環境は Windows 一般(98/Me/XP/Vistaなど)
あけましておめでとうございます。
全部書くと面倒なので要点だけ。
>問題は 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()もお忘れなく
FUKUさん。
情報ありがとうございます。
これから色々と試してみます。
上手くいかなかったらまた書き込みます。