日期:2014-05-17  浏览次数:21265 次

C# 如何获取到回收站里面的文件信息
在网上搜索了一大圈,没找到方法~
1.Directory.GetFiles("回收站路径");有人使用"C:\\RECYCLER",这个毫无疑问错误的。
又去搜索获取回收站路径,有个API:SHGetSpecialFolderPath 但是获取回收站路径为空,不知道为什么,有人可以解释下当然最好
2.SHQueryRecycleBin和SHEmptyRecycleBin API ,但是只能实现获取回收站中占用空间大小和文件个数,以及清空回收站的功能,不符合要求。
先在此谢谢了…
回收站

------解决方案--------------------
SHGetSpecialFolderPath无法获取虚拟目录,而回收站正好是虚拟目录。

有人用C++实现过,你可以参照一下:
http://www.codeproject.com/Articles/2783/How-to-programmatically-use-the-Recycle-Bin
------解决方案--------------------
这是代表扩展属性的scid,前面的guid是fmtid表示Displaced属性集,后面是pid分别表示
2 = PID_DISPLACED_FROM:  文件删除路径
3 = PID_DISPLACED_DATE:   文件删除日期
http://msdn.microsoft.com/en-us/library/ms538308.aspx