Я хотел бы сделать резервную копию, когда файл удален - или фактически перед удалением.
Я попытался использовать FileSystemWatcher, но он вызывает событие только тогда, когда файл уже удален, делая невозможнымскопировать файл.
Вот код, который я пробовал:
var watcher = new FileSystemWatcher(@"C:\folderToWatch");
//watcher.Changed += WatchEvent;
//watcher.Created += WatchEvent;
//watcher.Renamed += WatchEvent;
watcher.Deleted += WatchEvent;
watcher.EnableRaisingEvents = true;
С помощью метода WatchEvent следующим образом:
private static void WatchEvent(object sender, FileSystemEventArgs e)
{
File.Copy(e.FullPath, Path.Combine(@"C:\folderToWatchBackup", e.Name));
Console.WriteLine($"{e.FullPath} was {e.ChangeType}");
}
Конечно, он выдает исключение при попытке скопировать файл, который былуже удален.
Я также пытался прослушивать события Changed и Renamed, но они также не выполняют эту работу.
Идеальный сценарий - это событие, подобное этому:
watcher.BeforeDelete += WatchEvent;
Мне бы хотелось несколько советов о том, как реализовать желаемую функциональность, или, может быть, некоторые идеи, которые могли бы направить меня в сторону чего-то полезного.
Пока я нашел все, что нашел, было написать что-то на C или C ++так что, возможно, это действительно невыполнимая задача для C #?
(это мой первый вопрос, поэтому я надеюсь, что он имеет смысл).