您的位置:首页 > 其它

查询并删除回收站内容

2009-09-27 18:40 225 查看
Codes

//////////////////////////////////////////////////////////////////////////

//原文:http://hi.baidu.com/hypkb/blog/item/a35950238b2242a34623e8a5.html

//查询并删除回收站内容

//初始化SHQUERYRBINFO结构

SHQUERYRBINFORecycleBinInformation;

ZeroMemory(&RecycleBinInformation,sizeof(RecycleBinInformation));//must

RecycleBinInformation.cbSize=sizeof(RecycleBinInformation);

TRACE("///////////////////////////////////////////////////n");

//查询回收站信息

if(SHQueryRecycleBin("F://",&RecycleBinInformation)==S_OK)

//SHQueryRecycleBin第一参数为要查询回收站的盘符或者文件夹,子文件夹

//一般其根目录相同指向的回收站也是一样的

//为NULL则指代所有回收站,和下面的SHEmptyRecycleBin第二参数相同

{

TRACE("ThetotalsizeofalltheobjectsinthespecifiedRecycleBin%ld/n",RecycleBinInformation.i64Size);

TRACE("ThetotalnumberofitemsinthespecifiedRecycleBin%ld/n",RecycleBinInformation.i64NumItems);

}

else

{

TRACE("SHQueryrecycleBinFail/n");

}


//清空回收站

if(SHEmptyRecycleBin(NULL,"F://",NULL/*SHERB_NOCONFIRMATION|SHERB_NOPROGRESSUI|SHERB_NOSOUND*/)==S_OK)

//SHEmptyRecycleBin第三参数如果要显示确认删除对话框和声音之类的东西置空既可

{

TRACE("SHEmptyRecycleBinSuccess/n");

}

else

{

TRACE("SHEmptyRecycleBinFail/n");

}

//////////////////

//运行程序时会额外弹出如下对话框,我搜索也没搜到合适的desktop文件,不过我在E:/Recycle下试着删掉

该盘下的回收站时看到过一次desktop文件,以后试了几次也没在看到过,不知为么,可能与系统时有关...




/////////////////////////////////

其他:

1:桌面已经有一个回收站了,可是为什么每个磁盘里又再有一个回收站,这些回收站是用来做什么用的?

桌面上的是快捷方式,但是比较特殊,是无法删除的。分区里的回收站才是真正的文件夹,也是无法删除的。当磁盘内有文件要删除时,会自动剪切到那个分区的回收站,并且被压缩(不是rar或zip之类的压缩,而是系统自带的特殊方法)。每个磁盘都划分出一定的空间(一般是10%)来作为回收站,当删除文件的时候,它并没有真正删除,而是转移到了原文件所在盘划分出的这个回收站里了,这样如果恢复的话也快的多。桌面上的回收站相当于是所有磁盘里的回收站的快捷方式,所有回收站里的东西都可以在桌面上的这个回收站里看到。

2:为什么一个磁盘下有多个回收站?如何才可以去除一些,或者让他保持一个?
你每个都删删看,要是不是本系统建的就能删掉,有可能是你装过好几个系统,或是你的机器上装了双系统!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: