怎么获取垃圾回收站里文件的大小,路径?

时间:2021-03-21 00:01:46
需要获取垃圾回收站里每个文件的大小,路径.
文件名称名称目前可以获取到,但是怎么获取每个文件的大小,和访问路径(可通过 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 是文件名

                }

8 个解决方案

#1


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

#2


是 SHGet SpecialFolderLocation 吧?

#3


引用 1 楼 worldy 的回复:
lz翻垃圾桶要干嘛呢? 怎么获取垃圾回收站里文件的大小,路径?

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

#4


引用 3 楼 celiacw1 的回复:
Quote: 引用 1 楼 worldy 的回复:

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

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

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

#5


http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/

#6


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 celiacw1 的回复:

Quote: 引用 1 楼 worldy 的回复:

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

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

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


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

#7


引用 5 楼 VisualEleven 的回复:
http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/


谢谢你,找到了答案
http://www.codeproject.com/Articles/2783/How-to-programmatically-use-the-Recycle-Bin

#8


引用 7 楼 celiacw1 的回复:
Quote: 引用 5 楼 VisualEleven 的回复:

http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/


谢谢你,找到了答案
http://www.codeproject.com/Articles/2783/How-to-programmatically-use-the-Recycle-Bin

共同学习,共同进步。

#1


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

#2


是 SHGet SpecialFolderLocation 吧?

#3


引用 1 楼 worldy 的回复:
lz翻垃圾桶要干嘛呢? 怎么获取垃圾回收站里文件的大小,路径?

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

#4


引用 3 楼 celiacw1 的回复:
Quote: 引用 1 楼 worldy 的回复:

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

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

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

#5


http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/

#6


引用 4 楼 zhao4zhong1 的回复:
Quote: 引用 3 楼 celiacw1 的回复:

Quote: 引用 1 楼 worldy 的回复:

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

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

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


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

#7


引用 5 楼 VisualEleven 的回复:
http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/


谢谢你,找到了答案
http://www.codeproject.com/Articles/2783/How-to-programmatically-use-the-Recycle-Bin

#8


引用 7 楼 celiacw1 的回复:
Quote: 引用 5 楼 VisualEleven 的回复:

http://zhanyonhu.blog.163.com/blog/static/161860442008812103918112/


谢谢你,找到了答案
http://www.codeproject.com/Articles/2783/How-to-programmatically-use-the-Recycle-Bin

共同学习,共同进步。