程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> .NET不用控件實現文件夾監測系統

.NET不用控件實現文件夾監測系統

編輯:關於C語言

最近遇到一個項目,在項目之中想監測一個文件夾裡面文件的變化情況,另外想做成開機啟動,並且能夠提醒客戶,便於客戶做出相應的動作。

在網上搜集了不少的東西,對這個我這個東西起了不少的作用,但是總是零零碎碎的,最後還是跌跌撞撞的寫出來了,測試了一下還行,本人本著互聯網的互助原則,將這個小東西放在網上,希望能對大家有一個拋磚引玉的作用,同時也希望大家能多提意見!呵呵…轉入正題吧。

在網上搜索了一下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】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved