SHQueryRecycleBin (shell32)
Last changed: -171.251.237.209

.
Summary

C# Signature:

[DllImport("shell32.dll")]
static extern int SHQueryRecycleBin(string pszRootPath, ref SHQUERYRBINFO
   pSHQueryRBInfo);

User-Defined Types:

[StructLayout(LayoutKind.Sequential, Pack=4)]
public struct SHQUERYRBINFO
{
    public int  cbSize;
    public long i64Size;
    public long i64NumItems;
}

Notes:

Setting Pack = 4 correctly aligns the data and doesn't add any padding bytes that throw off struct size/values.

Tips & Tricks:

Please add some!

Sample Code:

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;
}

N.B.

/*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);

Alternative Managed API:

Do you know one? Please contribute it!

Documentation