#c# #filesystemwatcher
#c# #filesystemwatcher
Вопрос:
Мы знаем, что в .NET (если быть точным, C #) мы можем использовать a FileSystemWatcher
для обнаружения любого типа изменений.
public void MessageFileWatcher(string Path, string FileName)
{
FileSystemWatcher Watcher = new FileSystemWatcher();
Watcher.Path = Path;
Watcher.Filter = FileName;
Watcher.NotifyFilter = NotifyFilters.LastWrite;
Watcher.Changed = new FileSystemEventHandler(OnChanged);
Watcher.EnableRaisingEvents = true;
}
но я хочу следить за файлом и через некоторое время также хочу удалить этот файл.
Если быть точным. может FileSystemWatcher
ли класс всегда искать изменения… и если я захочу удалить этот конкретный файл, вызовет ли это исключение?
Комментарии:
1. Попробуйте и узнайте?
Ответ №1:
Это не вызовет исключения.
A FileSystemWatcher
не просматривает файлы: он просматривает файловую систему. В этом случае вы обнаружите, что при удалении файла возникнет по крайней мере событие Deleted.
Ответ №2:
A FileSystemWatcher
указывает путь с дополнительным фильтром, а не отдельный файл. Конечно, если вы установите фильтр в качестве имени файла, наблюдатель будет просматривать только один файл, но это скорее побочный эффект, чем его предполагаемое использование.
Тем не менее, ясно, что да, вы можете удалить файл, который просматриваете. Однако удаление не должно вызывать Changed
событие. Чтобы отслеживать удаление, вам нужно будет использовать Deleted
событие.