C# 系统应用之清空回收站操作
由于毕业设计项目是基于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# 系统应用之清空回收站操作相关推荐
- 2008服务器系统只有回收站,win2008系统中彻底清空回收站的教程
回收站是收容和清理系统垃圾的地方,定期地对回收站进行清理,可以有效地为系统减压,从而也提高了系统的运行速度,但是在win2008系统中发生了一件怪事,系统回收站无法被清空,是不是很多用户都会碰到这样的 ...
- 电脑打开回收站显示服务器运行失败,win7 64位系统无法清空回收站的故障原因及解决方法...
运行win7系统一段时间后,为提高运行速度,会删除一些不常用或无用的文件.删除的无用文件都是放在回收站里面的,主要是方便用户直接恢复.所以大家需要在win7 64位系统回收站里面在彻底清除一次文件, ...
- 用Visual C#来清空回收站(1)
视窗操作系统的回收站是对文件一种保护措施,他主要是作用是不言而喻的.在新的视窗2000系统之中,当我把文件删除到回收站中以后,按动"清空回收站"按钮,想清空回收站,此时往往提示&q ...
- 表格数据清空还能恢复吗_数据恢复大师:清空回收站文件如何恢复?
电脑,是目前生活中所不可缺少的一种设备,在使用的过程中,具有便于携带,存储容量大的优势而受到了很多人的喜爱,然而对于一些新手来说,在操作电脑时,也都喜欢将电脑所需要的文件存储在桌面上,伴随文件存储数量 ...
- gvfsd-trash占用内存高时,清空回收站
ubuntu系统由于长期的各种文件操作,导致回收站有大量的文件,这些文件会占用系统内存.当发现进程gvfsd-trash占用内存过高时,需要手动清空回收站和kill进程 清空回收站 sudo rm - ...
- 清空回收站后怎么恢复文件?恢复教程来了
清空回收站后怎么恢复文件?很多用户会将不需要用的文件删除,这时候文件会暂时存放在回收站中,但有时候为了提升系统运行速度,会将回收站中的文件再次清理掉以节省空间,但如果发生了误删的情况怎么办?有什么恢复 ...
- 怎么清空回收站?3分钟解决!
真实案例:回收站清空不了怎么办?怎样清空回收站里的文件? "各位大神,怎么恢复回收站里清空的文件?我按照百度上的方法,还是不行." 当你在电脑上删除文件时,它们通常会被移到回收站, ...
- 【91xcz】XP下无法清空回收站怎么办
当前位置:小橙子下载 → 下载中心 → xp系统 XP下无法清空回收站 我的系统是Windows XP,我从F盘中删除了一个名为"dvdregionfree3031"的文件后,系统 ...
- 笔记本清空回收站文件怎么恢复?分享三种方法
不论是笔记本电脑还是台式机电脑,都有回收站这样的"后悔药",我们许多误删除的文件夹.图片.视频.文档等都能从它里面找到,回收站在灵活运用下能更好的为我们服务,但是使用过程中难免会出 ...
最新文章
- c php socket,C与php socket通讯
- python 统计文件top IP
- 基本概念学习(8003)---CPU中央处理器
- 转换string_类型转换详解
- vue 数组中嵌套数组_vue+element-ui表单校验之数组多层嵌套
- 悟透delphi 第五章 包
- 喀什师范学计算机学院学位论文开题报告,喀什师范学院本科生毕业论文开题报告.doc...
- 【Android】dp-sp-屏幕像素密度
- C#获取当前桌面路径
- Windows 10 截图工具
- 【有利可图网】PS实战系列:制作树林与文字结合的创意文字效果
- VFP开发微信、支付宝扫码支付
- 4.通过Opencv采集摄像头视频数据
- 【教学类-34-01】拼图(运动项目-长方块拼图)3*4格子(中班主题《个别化拼图》健康偏艺术-美术)
- 全球与中国矿物加工工程市场深度研究分析报告
- [XSY] 线图(树形DP、分类讨论)
- 【结构体】C语言结构体使用教程
- 小红书自研KV存储架构如何实现万亿量级存储与跨云多活
- 暴雪每周服务器维护时间,截止至今,暴雪在3.1服务器上进行的紧急更新
- 在IE下-下载文件-文件名中文名乱码问题