[DllImport("shell32.dll")]
static extern int SHQueryRecycleBin(string pszRootPath, ref SHQUERYRBINFO
pSHQueryRBInfo);
[StructLayout(LayoutKind.Sequential, Pack=4)]
public struct SHQUERYRBINFO
{
public int cbSize;
public long i64Size;
public long i64NumItems;
}
Setting Pack = 4 correctly aligns the data and doesn't add any padding bytes that throw off struct size/values.
Please add some!
public static int GetCount()
{
SHQUERYRBINFO sqrbi = new SHQUERYRBINFO();
sqrbi.cbSize = Marshal.SizeOf(typeof(SHQUERYRBINFO));
int hresult = SHQueryRecycleBin(string.Empty, ref sqrbi);
return (int)sqrbi.i64NumItems;
}
/*In case of Windows 2000 OS, you must supply the root drive.
So,in order to calculate the total no of recycled items ,
you must add the recycled items from each drive
e.g. For getting the recycled items from the C:\ , you should use:
*/
int hresult = SHQueryRecycleBin(@"C:\", ref sqrbi);
Do you know one? Please contribute it!