以下は、C:\work\test.txtというファイルの削除を監視するサンプルコードです。
(Visual Studio Express 2013 for DesktopとNET Framework 4.5で検証しています)
FileSystemWatcher watcherこのプログラムは、実行前に対象のファイルが存在し、その後変更が加えられない場合には正しく機能しますが、あとからこのファイルを作成したり、このファイルを同名のファイルで上書きしてしまうと、ファイルの削除を検知できなくなります。
= newFileSystemWatcher(@"C:\work", @"test.txt");
watcher.WaitForChanged(WatcherChangeTypes.Deleted);
System.Console.WriteLine("File has been deleted");
このような状況でもきちんと機能させるには、WaitForChanged()を使うのではなく、イベントハンドラーを使って非同期処理を行う必要があります。
FileSystemWatcher watcher =
new FileSystemWatcher(@"C:\work", @"test.txt");
watcher.Deleted += (sender, eventArgs) =>
{
System.Console.WriteLine("File has been deleted.");
};
watcher.EnableRaisingEvents = true;
0 件のコメント:
コメントを投稿