FileSystemWatcher
ディレクトリからの変更を追跡するために使用しています。問題は、監視しているサブディレクトリ内に最近作成されたサブディレクトリを追跡して変更を加えなければならないことです。今のところ、Change
イベントを使用して変更を検出し、ディレクトリであるかどうかを確認し、そのサブディレクトリFullPath
の新しいインスタンスを作成しています。FileSystemWatcher
private static void StartMonitoringDir(string dir)
{
var fileWatcher = new FileSystemWatcher(dir)
{
EnableRaisingEvents = true,
Filter = "*.exe"
};
var folderWatcher = new FileSystemWatcher(dir)
{
EnableRaisingEvents = true
};
fileWatcher.Created += FileWatcherOnCreated;
fileWatcher.Changed += FileWatcherOnChanged;
folderWatcher.Created += FolderWatcherOnCreated;
}
private static void FolderWatcherOnCreated(object sender, FileSystemEventArgs e)
{
var attr = File.GetAttributes(e.FullPath);
if (attr != FileAttributes.Directory) return;
StartMonitoringDir(e.FullPath);
}
それで、ここに問題があります。ディレクトリを作成するとすぐにChanged
その名前でイベントが発生する"New Folder"
ため、ユーザーがこのフォルダーの名前を変更してその内部を変更すると、ユーザーが名前を付けたフォルダーで"New Folder"
はなく、フォルダーの古い名前が取得されます。ディレクトリ名が間違っているため、フォルダの新しい名前が何であるかを知る方法がなく、変更を加えることができません。