.NET不用控件实现文件夹监测系统

开发 后端
尽管.NET中存在不少的控件,但靠自己实现一些功能对于程序员了解.NET的编译机制还是有帮助的。不能简单的认为这是重复造轮子,而是一种学习的过程。

最近遇到一个项目,在项目之中想监测一个文件夹里面文件的变化情况,另外想做成开机启动,并且能够提醒客户,便于客户做出相应的动作。

在网上搜集了不少的东西,对这个我这个东西起了不少的作用,但是总是零零碎碎的,最后还是跌跌撞撞的写出来了,测试了一下还行,本人本着互联网的互助原则,将这个小东西放在网上,希望能对大家有一个抛砖引玉的作用,同时也希望大家能多提意见!呵呵…转入正题吧。

在网上搜索了一下http://www.hackchina.com/cont/27825网站是一个老外的东西,还是比较好用,但是源代码没能下载下来!嘿嘿…可能点背。所以就下决心自给自足了。

其实程序的核心类就是.net的一个控件1 ,但是当时没有发现,做完以后有一种被捉弄的感觉,呵呵…大家仅供借鉴!

本人在程序里面没有直接用控件,代码如下:

  1. public static FileSystemWatcher watcher = new FileSystemWatcher(); 

当然问题的解决这样未免有点太轻松了!接下来就是为对watcher 的事件捕获并进行相应处理,代码如下:

  1. watcher.Changed += new FileSystemEventHandler(OnChanged);   
  2. watcher.Created += new FileSystemEventHandler(OnChanged);   
  3. watcher.Deleted += new FileSystemEventHandler(OnChanged);   
  4.  watcher.Renamed += new RenamedEventHandler(OnRenamed);   

相信看我问东东的同仁们到现在也就知道怎么做了,再次不再赘述。另外就是由于文件夹的检测所以会触及到系统安全,所以在程序之中程序的权限设置就显得很有必要,在程序之中加入下面的代码,能有效地避免程序被误认为是非法操作。

  1. [PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]  

到此,整个程序的主要功能更就完了,另外就是一个开机启动的设置和取消,另外就是监测报告!这些问题,开机启动的设置和取消是windows的注册表编程,也就不卖关子了,直接给大家代码吧:

  1.  private void AutoRun_CheckedChanged(object sender, EventArgs e)   
  2.  {   
  3.  if (AutoRun.Checked)//开机自动启动   
  4. {   
  5. try   
  6. {   
  7.  RegistryKey runKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"true);   
  8.  runKey.SetValue("文件夹监测.exe", System.Windows.Forms.Application.ExecutablePath);   
  9. runKey.Close();   
  10.  }   
  11.  catch (IOException)   
  12.  {   
  13.  return ;   
  14. }   
  15.  }   
  16.  else //不开机自动启动注册表信息删除   
  17.  {   
  18.  RegistryKey software = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"true);   
  19. string[] aimnames = software.GetValueNames();   
  20.  foreach (string aimKey in aimnames)   
  21.  {   
  22.  if (aimKey.Equals("文件夹监测.exe"))   
  23.  {   
  24.  software.DeleteValue("文件夹监测.exe") ;   
  25.  software.Close();   
  26.  break;   
  27.  }   
  28.  }   
  29.  }   
  30. }  

这些就是开机启动的设置以及取消代码。另外程序可以类似于QQ做消息(文件夹变动消息)提示,当然这些都是一些小把戏,大家应该比我懂得多,我就不献丑了,现在就讲运行的结果展示一下:

这是启动界面:

2

上面是软件的启动界面,当然上面有我的QQ以及邮箱,大家有什么指教的,这些联系方式一般都是可以找到的,除非我睡觉,呵呵…

这是程序的程序开始监测的结果:

3

上面是运行效果,下面是最小化到托盘、以及消息提示如下图展示:

41 红色矩形的就是运行的检测程序.代码程序里面很全面.

原文链接:http://www.cnblogs.com/wukaibo/archive/2011/04/05/2006179.html

【编辑推荐】

  1. C#取整函数实例应用详解
  2. C#单元测试的一个小故事
  3. C#单元测试使用的必要性的浅析
  4. C#单元测试概念及作用的浅析
  5. C#单元测试的运行浅析

 

【责任编辑:彭凡 TEL:(010)68476606】

 

 

责任编辑:彭凡 来源: 博客园
相关推荐

2009-10-27 08:56:22

VB.NET文件夹

2010-01-21 13:34:56

VB.NET删除文件夹

2011-05-23 17:00:29

2010-01-13 10:25:30

VB.NET文件夹操作

2009-10-27 11:03:16

VB.NET文件夹操作

2009-10-27 17:59:16

VB.NET删除文件夹

2022-11-16 16:28:21

2009-08-31 12:56:36

C#创建文件夹

2009-12-03 14:10:06

PHP压缩文件夹

2017-03-01 14:16:36

Linux文件管理器隐藏文件

2009-08-05 15:39:57

文件夹权限设置

2010-12-31 13:35:25

文件夹重定向

2012-12-25 10:41:27

文件夹加密

2017-04-07 11:00:25

Windows 7Windows自动备份

2011-07-27 14:52:37

iPhone 系统 文件

2021-04-06 11:33:25

Windows 10Windows微软

2009-08-31 12:31:45

C#创建文件夹

2012-05-23 16:50:27

ASP.NET

2020-04-15 18:46:19

WindowsLinux文件夹系统

2009-12-03 10:18:32

Linux文件夹执行权限
点赞
收藏

51CTO技术栈公众号