快速搜索
主页 > 软件开发 > C#开发 >

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

时间:2012-09-10 14:38来源:未知 作者:admin 点击:
分享到:
最近遇到一个项目,在项目之中想监测一个文件夹里面文件的变化情况,另外想做成开机启动,并且能够提醒客户,便于客户做出相应的动作。 在网上搜集了不少的东西,对这个我这个

?

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

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

在网上搜索了一下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的注册表ag怎么试玩|平台,也就不卖关子了,直接给大家代码吧:

  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

?


精彩图集

赞助商链接