Как записать файл в C # в путь к папке, который отслеживается FileSystemWatcher?
Мои настройки fileSystemWatcher следующие:
public FileSystemWatcher CreateAndExecute(string path)
{
Console.WriteLine("Watching " + path);
//Create new watcher
FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
fileSystemWatcher.Path = path;
fileSystemWatcher.IncludeSubdirectories = false;
fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite |
NotifyFilters.FileName | NotifyFilters.DirectoryName;
fileSystemWatcher.Filter = "*.txt";
fileSystemWatcher.Changed += new FileSystemEventHandler(OnChange);
fileSystemWatcher.InternalBufferSize = 32768;
//Execute
fileSystemWatcher.EnableRaisingEvents = true;
}
private void OnChange(object source, FileSystemEventArgs e)
{
//Replace modified file with original copy
}
Iхотите заменить содержимое измененного файла резервной копией из базы данных всякий раз, когда в файл происходит несанкционированная запись (вне программы).
Однако, когда я пишу с использованием File.WriteAllText () в измененный файлfile, он вызывает событие Change с помощью FileSystemWatcher, когда действие снова регистрируется как запись.
Это заставляет программу работать в бесконечном цикле перезаписи только что записанного файла.
Как я могу заменить измененный файл резервной копией, не вызывая другое событие для записи с помощью FileSystemWatcher?