C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

FileSystemWatcherでの複数ファイル監視


(過去ログ 159 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■92347 / inTopicNo.1)  FileSystemWatcherでの複数ファイル監視
  
□投稿者/ ポケモンすけ (5回)-(2019/09/11(Wed) 14:51:19)

分類:[C#] 

お世話になります。

CentOS7 .netCore環境において全く初めてですが、C#言語で
フォルダ常駐監視(FileSystemWatcher)を用いて、フォルダ内のファイルの更新を監視
するプログラムを作成しております。

以下のようなソースで試してみましたところ、1つのフォルダ内を監視するのであれば
問題なく動作しました。

static void Main(string[] args)
{
FileSystemWatcher directoryWatcher = new FileSystemWatcher();
FileSystemWatcher fileWatcher = new FileSystemWatcher();

directoryWatcher.Path = @"/var/test/filewatcher";
directoryWatcher.NotifyFilter = NotifyFilters.DirectoryName | NotifyFilters.CreationTime;
directoryWatcher.Created += delegate (object sender, FileSystemEventArgs e)
{
//Console.WriteLine("OnCreated" + e.FullPath);
};
directoryWatcher.Changed += delegate (object sender, FileSystemEventArgs e)
{
//Console.WriteLine("OnChanged" + e.FullPath);
};

fileWatcher.Path = @"/var/test/filewatcher";
fileWatcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.CreationTime | NotifyFilters.LastAccess;
fileWatcher.Filter = "*.*";

fileWatcher.Created += OnCreatedFile;
fileWatcher.Changed += OnChangedFile;
fileWatcher.Deleted += OnDeletedFile;
fileWatcher.Renamed += OnRenamedFile;


directoryWatcher.EnableRaisingEvents = true;
fileWatcher.EnableRaisingEvents = true;

Console.WriteLine("Press 'q' to quit the sample.");
while (Console.Read() != 'q') ;
}


ただ、監視対象ファイルは動的に変更があり、増減もあります。(監視対象のフォルダの
一覧が定期的に更新されます。)

そのため、複数のフォルダ内のファイルの監視が必要なのです。

その場合、それぞれについて、FileSystemWatcherのインスタンスを生成して、動かさないといけない
でしょうか。

監視対象一覧を見に行くのと、複数フォルダの監視とは切り離してべつのプログラムにするしか
ないでしょうか。
良い案があれば、ご教示くださいませ。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -