.NET 下的文件夹监测系统

本文介绍了一个使用.NET Framework实现的文件夹变动监测程序。该程序能够监控指定文件夹内文件的创建、修改、删除和重命名等变化,并通过托盘图标提供通知。此外,程序还具备开机自动启动的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

在网上搜索了一下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 相信看我问东东的同仁们到现在也就知道怎么做了,再次不再赘述。另外就是由于文件夹的检测所以会触及到系统安全,所以在程序之中程序的权限设置就显得很有必要,在程序之中加入下面的代码,能有效地避免程序被误认为是非法操作。
1 [PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust" )]
1 到此,整个程序的主要功能更就完了,另外就是一个开机启动的设置和取消,另外就是监测报告!这些问题,开机启动的设置和取消是windows的注册表编程,也就不卖关子了,直接给大家代码吧:
01 private void AutoRun_CheckedChanged( object sender, EventArgs e)
02         {
03             if (AutoRun.Checked) //开机自动启动
04             {
05                 try
06                 {
07                     RegistryKey runKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE/Microsoft/Windows/CurrentVersion/Run" , true );
08                     runKey.SetValue( "文件夹监测.exe" , System.Windows.Forms.Application.ExecutablePath);
09                     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 红色矩形的就是运行的检测程序.代码程序里面很全面.

监测提示,就不在截图了!要不就太没水准了!呵呵…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值