如何以编程方式清除Windows下的回收站?

时间:2013-11-14 04:12:19

标签: c# .net c windows winapi

如果我想以编程方式清除Windows下的回收站,如何实现?

IFileOperation有帮助吗?

2 个答案:

答案 0 :(得分:4)

您可以使用SHEmptyRecycleBin()库中的shell32.dll函数来实现此目的。

答案 1 :(得分:1)

完整示例:

using System;
using System.Runtime.InteropServices;

class Program
{
    enum RecycleFlags : uint
    {
        SHERB_NOCONFIRMATION = 0x00000001,
        SHERB_NOPROGRESSUI = 0x00000002,
        SHERB_NOSOUND = 0x00000004
    }

    [DllImport("Shell32.dll", CharSet = CharSet.Unicode)]
    static extern uint SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlags dwFlags);

    static void Main(string[] args)
    {
        uint result = SHEmptyRecycleBin(IntPtr.Zero, null, 0);
        if (result == 0)
        {
            //OK
        }
    }
}