如何获取垃圾回收站里文件的大小,路径

怎么获取垃圾回收站里文件的大小,路径?
本帖最后由 VisualEleven 于 2015-06-08 18:19:37 编辑
需要获取垃圾回收站里每个文件的大小,路径.
文件名称名称目前可以获取到,但是怎么获取每个文件的大小,和访问路径(可通过 Explorer 访问), 请高手赐教,相关代码如下

SHQUERYRBINFO recycleBinInfo;
ZeroMemory(&recycleBinInfo,sizeof(recycleBinInfo));
recycleBinInfo.cbSize=sizeof(recycleBinInfo);
//查询回收站信息

if (SHQueryRecycleBin(NULL,&recycleBinInfo)==S_OK)
{
fileFinder.m_totalFileSize = recycleBinInfo.i64Size;
__int64 fileNum = recycleBinInfo.i64NumItems;

  }
else
{
printf("SHQueryrecycleBin Fail");
return eRTE_Cancelled;
}

IShellFolder *pisfRecBin = NULL;  
SHGetDesktopFolder(&pisfRecBin);  

LPITEMIDLIST pidlBin = NULL;  
SHGetFolderLocation(NULL, CSIDL_BITBUCKET, NULL, 0, &pidlBin);  

IShellFolder *pisf = NULL;  
pisfRecBin->BindToObject(pidlBin, NULL, IID_IShellFolder, (void**)&pisf);  

IEnumIDList *peidl = NULL;  
pisf->EnumObjects(NULL,  
SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN,  
&peidl);  

printf("\nFiles In Recycle Bin:\n"); 

LPITEMIDLIST pidlCurrent = NULL;  
STRRET strret;  
ULONG uFetched;  
HANDLE hOutPut = GetStdHandle(STD_OUTPUT_HANDLE);  
TCHAR szPath[MAX_PATH];  

int fileNums = 0;
while (1)  
{  
if (S_FALSE == peidl->Next(1, &pidlCurrent, &uFetched))  
break;  

SHGetPathFromIDList(pidlCurrent, szPath);  
pisf->GetDisplayNameOf(pidlCurrent, SHGDN_NORMAL, &strret);
UINT nSize = ILGetSize(pidlCurrent);

                        //strret.pOleStr 是文件名

                }

------解决思路----------------------
是 SHGetSpecialFolderLocation 吧?
------解决思路----------------------
引用:
Quote: 引用:

lz翻垃圾桶要干嘛呢?如何获取垃圾回收站里文件的大小,路径

不能说的秘密 如何获取垃圾回收站里文件的大小,路径

找空矿泉水瓶。如何获取垃圾回收站里文件的大小,路径
------解决思路----------------------
http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

lz翻垃圾桶要干嘛呢?如何获取垃圾回收站里文件的大小,路径

不能说的秘密 如何获取垃圾回收站里文件的大小,路径

找空矿泉水瓶。如何获取垃圾回收站里文件的大小,路径


赵老师该出手了,教教他,怎么才能找到空矿泉水瓶如何获取垃圾回收站里文件的大小,路径