RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
dotnet如何将文件删除到回收站-创新互联

前言

按需网站策划可以根据自己的需求进行定制,网站设计制作、网站设计构思过程中功能建设理应排到主要部位公司网站设计制作、网站设计的运用实际效果公司网站制作网站建立与制做的实际意义

默认删除文件的时候 File.Delete 是将文件永久删除,如果是一些文档,建议删除到回收站,这样用户可以自己还原 通过 SHFileOperation 可以将文件放在回收站

本文提供的方法暂时只能在 x86 程序使用,此方法暂时不适合 dotnet core 程序

添加一个帮助类

 public static class RecycleBin
 {
  public static void DeleteToRecycleBin(string file)
  {
   var shf = new SHFILEOPSTRUCT
   {
    wFunc = FO_DELETE,
    fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION,
    // pFrom 需要在字符串后面加两个 \0 才可以 https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/ns-shellapi-_shfileopstructa
    pFrom = file + "\0"
   };
   SHFileOperation(ref shf);
  }

  [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 1)]
  private struct SHFILEOPSTRUCT
  {
   public int hwnd;
   [MarshalAs(UnmanagedType.U4)] public int wFunc;
   public string pFrom;
   public string pTo;
   public short fFlags;
   [MarshalAs(UnmanagedType.Bool)] public bool fAnyOperationsAborted;
   public int hNameMappings;
   public string lpszProgressTitle;
  }

  [DllImport("shell32.dll", CharSet = CharSet.Auto)]
  private static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);

  private const int FO_DELETE = 3;
  private const int FOF_ALLOWUNDO = 0x40;
  private const int FOF_NOCONFIRMATION = 0x10;
 }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:dotnet如何将文件删除到回收站-创新互联
URL网址:http://sczitong.cn/article/ishcj.html