导入命名空间 using System.Runtime.InteropServices;
在类中定义方法属性:
public class MessageBox
{
/// <summary>
/// 删除文件到回收站
/// </summary>
/// <param name="path">删除文件的路径</param>
/// <returns></returns>
public static int DeleteFileToRecycleBin(string path)
{
_SHFILEOPSTRUCT pm = new _SHFILEOPSTRUCT();
pm.wFunc = FO_DELETE;
pm.pFrom = path + '/0';
pm.pTo = null;
pm.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
return SHFileOperation(pm);
}
private const int FO_DELETE = 0x3;
private const ushort FOF_NOCONFIRMATION = 0x10;
private const ushort FOF_ALLOWUNDO = 0x40;
[DllImport("shell32.dll")]
private static extern int SHFileOperation([In, Out] _SHFILEOPSTRUCT str);
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class _SHFILEOPSTRUCT
{
public IntPtr hwnd;
public UInt32 wFunc;
public string pFrom;
public string pTo;
public UInt16 fFlags;
public Int32 fAnyOperationsAborted;
public IntPtr hNameMappings;
public string lpszProgressTitle;
}