2009-07-10
ファイルの作成・削除・変更をイベントで知る方法
ファイルの変更をイベントで知る方法を探していたら、FileSystemWatcher というクラスを発見。
これを使えば、例えば C ドライブ内のファイルの作成・削除・変更を知る事ができそうです。次のように。
using System; using System.IO; namespace FileWatcherSample { class Program { static void Main(string[] args) { using (FileSystemWatcher watcher = new FileSystemWatcher()) { watcher.Path = @"C:\"; watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName; watcher.Filter = "*.*"; watcher.EnableRaisingEvents = true; watcher.Changed += (sender, e) => { Console.WriteLine("{0} が変更されました。", e.FullPath); }; watcher.Created += (sender, e) => { Console.WriteLine("{0} が作成されました。", e.FullPath); }; watcher.Deleted += (sender, e) => { Console.WriteLine("{0} が削除されました。", e.FullPath); }; watcher.Renamed += (sender, e) => { Console.WriteLine("{0} から {1} に変更されました。", e.OldFullPath, e.FullPath); }; Console.WriteLine("Enter で終了します。"); Console.ReadLine(); } } } }
ただ、「監視から除外するファイル」のフィルタを指定できないのがイマイチ。「特定の拡張子を除外する」といった使い方をしたいのに。
- 29 http://blogs.wankuma.com/
- 15 http://blogs.wankuma.com/nakamura/archive/2009/07/10/177327.aspx
- 3 http://blogs.wankuma.com/nakamura/
- 3 http://blogs.wankuma.com/nakamura/archive/2009/01/19/166447.aspx
- 3 http://www.google.co.jp/reader/view/?hl=ja&tab=wy
- 2 http://blogs.wankuma.com/nakamura/archive/2009/04/22/171866.aspx
- 2 http://blogs.wankuma.com/nakamura/archive/2009/07/09/177300.aspx
- 2 http://www.google.co.jp/search?hl=ja&q=windows+vista+iis+インストール手順&btnG=検索&lr=
- 2 http://www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rlz=1T4ADBR_jaJP318JP318&q=Silverlight+POPup
- 2 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP280JP280&q=MarshalAs+ref+int[]
- 2009-07-05 waりとnaはてな日記 4/24 16%
- 2009-07-07 waりとnaはてな日記 4/32 12%
- 2009-07-06 Bug Catharsis 3/38 7%
- 2009-07-07 試験運用中なLinux備忘録 3/43 6%
- 2009-07-07 Bug Catharsis 4/74 5%