由于毕业设计项目是基于U盘防御的软件,所以涉及些系统应用的知识.本文主要讲述的是如何通过C#代码实现清空回收站的资源.主要通过SHEmptyRecycleBin函数实现.

一.SHEmptyRecycleBin函数

SHEmptyRecycleBin函数功能是清空指定驱动的回收站.函数如下:

HRESULT SHEmptyRecycleBin(
HWND hwnd,                    //父窗口句柄
LPCTSTR pszRootPath,          //将要清空的回收站的地址
DWORD dwFlags                 //用于清空回收站的功能参数
);

该函数在shell32.dll下,其中LPCTSTR pszRootPath指向要清空的回收站的地址,如果为空时,则清空所有驱动器上的回收站.dwFlags参数可以有三个不同的值,可为一个或多个组合,用以设定是否要弹出系统对话框、是否显示删除进度条的UI和当删除完成时,是否播放声音.

const int SHERB_NOCONFIRMATION = 0x000001;   //不显示确认删除的对话框
const int SHERB_NOPROGRESSUI = 0x000002;     //不显示删除过程的进度条
const int SHERB_NOSOUND = 0x000004;          //当删除完成时,不播放声音

清空回收站中的文件的SHEmptyRecycleBin是一个内核API方法,该方法在C#中需要手动的引入方法所在的类库.同时因为调用了Windows API,所以要添加对System.Runtime.IneropServices命名空间的引用;该方法在C#中的声明语法如下:

DllImportAttribute("shell32.dll")]         //声明API函数
private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);

二.源代码

程序代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;namespace ClearRecycle
{public partial class Form1 : Form{const int SHERB_NOCONFIRMATION = 0x000001;   //不显示确认删除的对话框const int SHERB_NOPROGRESSUI = 0x000002;     //不显示删除过程的进度条const int SHERB_NOSOUND = 0x000004;          //当删除完成时,不播放声音public Form1(){InitializeComponent();}[DllImportAttribute("shell32.dll")]          //声明API函数private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);//点击"清空回收站"按钮private void button1_Click(object sender, EventArgs e){SHEmptyRecycleBin(this.Handle, "", SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND);}      }
}

代码中dwFlags值为“SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND”表示删除时不显示确认删除对话框,不显示删除过程的进度条,同时不播放声音.如果不指定预设状态,为0时会弹出系统的对话框和声音.

三.运行结果

如果SHEmptyRecycleBin(this.Handle,"",0);时提示如下确认删除对话框,如果项目过多时会显示删除的进度条.

如果删除文件时,没有显示声音,可以通过控制面板上面修改.如下图所示:

该文章主要是结合自己的毕业设计部分,同时查看相应书籍和参考下面几位博主完成.是一篇基础性应用文章,希望大家关注level up的文章,他的文章真心有用,似乎是台湾的一位智者.也将是我将来学习的主要对象.非常感谢他带来这么有用的系列文章.http://www.dotblogs.com.tw/larrynung/archive/2012/09/26/75065.aspx
最后希望该文章对大家有所帮助,如果有不足或错误的地方见谅!由于参考的令几篇文章都是转载,没有找到原作者,但同样感谢!
(By:Eastmount 2014-1-17 晚9点http://blog.csdn.net/eastmount)

C# 系统应用之清空回收站操作相关推荐

  1. 2008服务器系统只有回收站,win2008系统中彻底清空回收站的教程

    回收站是收容和清理系统垃圾的地方,定期地对回收站进行清理,可以有效地为系统减压,从而也提高了系统的运行速度,但是在win2008系统中发生了一件怪事,系统回收站无法被清空,是不是很多用户都会碰到这样的 ...

  2. 电脑打开回收站显示服务器运行失败,win7 64位系统无法清空回收站的故障原因及解决方法...

    运行win7系统一段时间后,为提高运行速度,会删除一些不常用或无用的文件.删除的无用文件都是放在回收站里面的,主要是方便用户直接恢复.所以大家需要在win7 64位系统回收站里面在彻底清除一次文件, ...

  3. 用Visual C#来清空回收站(1)

    视窗操作系统的回收站是对文件一种保护措施,他主要是作用是不言而喻的.在新的视窗2000系统之中,当我把文件删除到回收站中以后,按动"清空回收站"按钮,想清空回收站,此时往往提示&q ...

  4. 表格数据清空还能恢复吗_数据恢复大师:清空回收站文件如何恢复?

    电脑,是目前生活中所不可缺少的一种设备,在使用的过程中,具有便于携带,存储容量大的优势而受到了很多人的喜爱,然而对于一些新手来说,在操作电脑时,也都喜欢将电脑所需要的文件存储在桌面上,伴随文件存储数量 ...

  5. gvfsd-trash占用内存高时,清空回收站

    ubuntu系统由于长期的各种文件操作,导致回收站有大量的文件,这些文件会占用系统内存.当发现进程gvfsd-trash占用内存过高时,需要手动清空回收站和kill进程 清空回收站 sudo rm - ...

  6. 清空回收站后怎么恢复文件?恢复教程来了

    清空回收站后怎么恢复文件?很多用户会将不需要用的文件删除,这时候文件会暂时存放在回收站中,但有时候为了提升系统运行速度,会将回收站中的文件再次清理掉以节省空间,但如果发生了误删的情况怎么办?有什么恢复 ...

  7. 怎么清空回收站?3分钟解决!

    真实案例:回收站清空不了怎么办?怎样清空回收站里的文件? "各位大神,怎么恢复回收站里清空的文件?我按照百度上的方法,还是不行." 当你在电脑上删除文件时,它们通常会被移到回收站, ...

  8. 【91xcz】XP下无法清空回收站怎么办

    当前位置:小橙子下载 → 下载中心 → xp系统 XP下无法清空回收站 我的系统是Windows XP,我从F盘中删除了一个名为"dvdregionfree3031"的文件后,系统 ...

  9. 笔记本清空回收站文件怎么恢复?分享三种方法

    不论是笔记本电脑还是台式机电脑,都有回收站这样的"后悔药",我们许多误删除的文件夹.图片.视频.文档等都能从它里面找到,回收站在灵活运用下能更好的为我们服务,但是使用过程中难免会出 ...

最新文章

  1. c php socket,C与php socket通讯
  2. python 统计文件top IP
  3. 基本概念学习(8003)---CPU中央处理器
  4. 转换string_类型转换详解
  5. vue 数组中嵌套数组_vue+element-ui表单校验之数组多层嵌套
  6. 悟透delphi 第五章 包
  7. 喀什师范学计算机学院学位论文开题报告,喀什师范学院本科生毕业论文开题报告.doc...
  8. 【Android】dp-sp-屏幕像素密度
  9. C#获取当前桌面路径
  10. Windows 10 截图工具
  11. 【有利可图网】PS实战系列:制作树林与文字结合的创意文字效果
  12. VFP开发微信、支付宝扫码支付
  13. 4.通过Opencv采集摄像头视频数据
  14. 【教学类-34-01】拼图(运动项目-长方块拼图)3*4格子(中班主题《个别化拼图》健康偏艺术-美术)
  15. 全球与中国矿物加工工程市场深度研究分析报告
  16. [XSY] 线图(树形DP、分类讨论)
  17. 【结构体】C语言结构体使用教程
  18. 小红书自研KV存储架构如何实现万亿量级存储与跨云多活
  19. 暴雪每周服务器维护时间,截止至今,暴雪在3.1服务器上进行的紧急更新
  20. 在IE下-下载文件-文件名中文名乱码问题

热门文章

  1. begin again
  2. django后台接收form-data 格式上传的文件
  3. IDEA忽略不必要提交的文件
  4. Python攻克之路-网络编程(文件上传实现思路)
  5. JavaScript 经常忽略的 7 个基础知识点
  6. 关于织梦系统不支持php中GD库的问题
  7. Apple 预计于内华达州雷诺市再盖一个数据中心
  8. sql2012包含数据库,快速生成用户tsql脚本
  9. 领域驱动第四章-读书笔记
  10. JavaEE的13种核心技术