用C#Winform写个简单的批量清空文件内容和删除文件的小工具

本文介绍这个简单得不能再简单的小项目。做这个项目,有以下目的。

1

当然是做个能用的工具

2

学习使用Github

关于用VS2013创建一个项目并添加到Github的教程,请参考(http://www.admin10000.com/document/4004.html)。简单来说,就是先用VS创建项目;然后在Github网站上创建一个Respo(本项目的代码托管项目),记下(https://*.git)那个地址;最后用"提交""同步"这些按钮来同步代码到服务器。

这个小工具我命名为FileWiper,其Github地址为(https://github.com/bitzhuwei/FileWiper.git),欢迎大家来讨论。

使用Github

有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了

清空文件内容

只需打开文件,将原来的内容覆盖掉即可。要想彻底消灭文件数据,最好就是销毁其中的内容,然后把文件名改掉,最后再删除文件。这样,即使文件被什么工具恢复了,也只是文件名没有意义,内容为空的一个无用的东西。

public static void WipeFileContent(string filename)

{

using (var stream =

new System.IO.StreamWriter(filename, false))

{

stream.Write("http://bitzhuwei.cnblogs.com");

}

}

注册到系统右键菜单

用RegistryKey进行注册。

程序路径后面跟了个" %1",这样在启动时,在Main函数里的args参数就会包含选定的文件路径(或文件夹路径)。

         private void btnRegister_Click(object sender, EventArgs e)
{
//给所有类型的文件添加自定义的右键菜单
{
var itemName = "Wipe Content";
var associatedProgramFullPath = this.GetType().Assembly.Location;
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell", true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
} //创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command"); //创建默认值:关联的程序
associatedProgramKey.SetValue(string.Empty, associatedProgramFullPath + " %1"); //刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
} //给所有文件夹添加自定义的右键菜单
{
var itemName = "Wipe Directory";
var associatedProgramFullPath = this.GetType().Assembly.Location;
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
} //创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command"); //创建默认值:关联的程序
associatedProgramKey.SetValue("", associatedProgramFullPath +" %1"); //刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
}
}

注册到系统右键菜单

取消注册系统右键菜单

仍然用RegistryKey实现。

         private void btnUnregister_Click(object sender, EventArgs e)
{
//给所有类型的文件删除自定义的右键菜单
{
var itemName = "Wipe Content";
var associatedProgramFullPath = this.GetType().Assembly.Location;
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell", true);
if(shellKey!=null)
{
shellKey.DeleteSubKeyTree(itemName, false);
} //刷新到磁盘并释放资源
shellKey.Close();
} //给所有文件夹删除自定义的右键菜单
{
var itemName = "Wipe Directory";
var associatedProgramFullPath = this.GetType().Assembly.Location;
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);
if (shellKey != null)
{
shellKey.DeleteSubKeyTree(itemName, false);
} //刷新到磁盘并释放资源
shellKey.Close();
}
}

取消注册系统右键菜单

欢迎大家到本项目的github上关注(https://github.com/bitzhuwei/FileWiper.git)!

用C#Winform写个简单的批量清空文件内容和删除文件的小工具的更多相关文章

  1. Linux批量清理多个文件内容而不删除文件

    清理单个文件,可以这样:echo > myLog.log 但是,如果我要清理一堆文件,比如在/logs目录下面的所有以.log结尾的文件的内容,而不删除文件,该如何操作呢? 我一开始的语句是这样 ...

  2. Linux批量清空当前目录中的日志文件

    在Linux中,有时需要批量清空当前目录中的日志文件,同时还要保留日志文件. 其实一行shell命令就可以搞定,一起来看看吧. 在当前目录下,键入如下命令: for i in `find . -nam ...

  3. 批量查询PDF文本并导出结果的小工具

    效果: 批量查询指定关键字 & 指定目录下PDF文件中的文本,并导出文件路径和关键字所在文本行. 下载: 链接: https://pan.baidu.com/s/1sK2OMMgGX26l7P ...

  4. 【原创】linux 批量清空文本内容

    清空所有PHP文件 find . -name '*.php'|xargs sed -i '1,$d' 清空所有文件 find . -type f|xargs sed -i '1,$d'

  5. linux shell中如何批量添加一行内容到某些文件的末尾?

    答:先使用find找出要指定的某些文件,然后使用xargs和sed工具将内容插入到这些文件的末尾 find . -name 'filename*' | xargs sed -i '$a\added-c ...

  6. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

  7. ansible写一个简单的playbook

    前言 实现的功能很简单,就是通过ansible批量完成某个账户sudo权限的开通或关闭 目录结构 ├── group_vars #放置各种变量的目录,我这里没用 ├── hosts #主机和组配置,默 ...

  8. winform 下log4net简单应用示例及“缺少log4net引用”的处理方案

    1.添加应用log4net.dll 2.新增log4net.config文件,文件内容如下 <?xml version="1.0" encoding="utf-8& ...

  9. 【Python项目】简单爬虫批量获取资源网站的下载链接

    简单爬虫批量获取资源网站的下载链接 项目链接:https://github.com/RealIvyWong/GotDownloadURL 1 由来 自己在收集剧集资源的时候,这些网站的下载链接还要手动 ...

随机推荐

  1. Linux的学习之路

    linux的安装配置.常用命令: 基本上学习任务: 1.在VMware(9)虚拟机上安装Linux操作系统(安装CentOs操作系统) 2.了解Linux操作系统 3.通过XShell工具操作Linu ...

  2. CentOS 6.5 x86_64系统手动释放内存

    1.查询当前内存使用情况和释放缓存的参数 redismaster 10:29:24 [~] [root] free -m total used free shared buffers cachedMe ...

  3. ZOJ3790_Consecutive Blocks

    给出一个数组,最多可以删除k个数,问能够获得的最长的一个数字连续段为多少? 把所有相同的数字都提取出来,保存取得每个数字需要删除的数字,然后二分枚举就可以了. 召唤代码君: #include < ...

  4. 关于Spring和mybatis的整合

    Spring同Mybatis的整合 1.引入相应的jar包.(Mybatis的jar包,Spring的jar包,mybatis-spring-1.1.1.jar). 2.编写相应的包(三层的包).搭建 ...

  5. XAMARIN +VS2015 ANDROID 开发禁止屏幕自动转动 Portrait,Nosensor

    网上有很多java的写法,但是放在C#中都无法使用,其实有时候还是安下心来认真的去看官网文档比在百度或者google来的快的多 this.RequestedOrientation = Android. ...

  6. Linux系统目录结构

    Linux系统目录结构图 目录:/ 是Linux的根目录 每个文件和目录从根目录开始,只有root用户具有该目录下的写权限: /root是root用户的主目录,这与 / 目录不一样: 目录:/bin ...

  7. android/ios js 启动apk

    1.在移动设备访问某个连接时时,如果本地安装了其应用客户端,则浏览器会调用本地客户端,没有安装则会跳转到下载页面,提示安装.刚好有这样的需求,网上参考了其他人的实现,大部分都是关于APK和本地js交互 ...

  8. Win7下安装一个装逼文本编辑器Atom + activate-power-mode插件

    Atom是Github推出的一个文本编辑器,搜索一下大概是给Web前端用的,最近比较火的是他的一个插件activate-power-mode,可以实现打字屏振效果. 用来装装逼还是挺适合的,本来想试试 ...

  9. MMC不能打开文件D:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC

    以上问题的解决方式如下: 1. 打开windows运行对话框.在对话框输入mmc.打开了如图所示的控制台. 2. 文件---添加/删除管理单元(M). 3. 添加.然后选择Microsoft SQL ...

  10. 黑马程序员-autorelease pool

    Autorelease:可以延迟给对象发送release消息.发送一个autorelease消息给对象,证明该对象在一定时间内有效,一定时间后会对该对象进行释放,进行一次release. 一个auto ...