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

わんくま同盟

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

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

■92347 / 親階層)  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のインスタンスを生成して、動かさないといけない
でしょうか。

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


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 返信無し
 
上記関連ツリー

FileSystemWatcherでの複数ファイル監視 / ポケモンすけ (19/09/11(Wed) 14:51) #92347 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信