Заранее спасибо, легко для большинства, без сомнения, но я новичок в программировании.
Мое первое приложение - это приложение winform, которое позволяет пользователю выбирать каталог, и когда он нажимает на старт, инициализируется FileSystemWatcher. Все работает, и я обработал изменения, удаления и т. Д., Но моя проблема в том, что он обрабатывает только одно событие (хотя и правильно), но после этого закрывается.
Мне нужно установить
Watcher.EnableRaisingEvents=True
до нажатия кнопки выхода?
Здесь код в настоящее время:
public void btnStart(object sender, EventArgs e)
{
//create watcher and set properties
FileSystemWatcher Watcher1 = new FileSystemWatcher();
Watcher1.Path = txtBoxDirToWatch.Text;
if (Watcher1.Path.Length <2)
{
MessageBox.Show("Path does not exist, Please reselect");
return;
}
//user response to close
MessageBox.Show("Your directory is now being monitored for changes");
Watcher1.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
//watch all files in the path
Watcher1.Filter = "*.*";
//add event handlers
Watcher1.Changed += new FileSystemEventHandler(OnChanged);
Watcher1.Created += new FileSystemEventHandler(OnChanged);
Watcher1.Deleted += new FileSystemEventHandler(OnDeleted);
Watcher1.Renamed += new RenamedEventHandler(OnRenamed);
//begin watching
Watcher1.EnableRaisingEvents = true;
}
public static void OnChanged(object source, FileSystemEventArgs e)
{
//need something in here to deal with changes and copy to hidden directory
string destination = Path.Combine(@"C:\Watcher\sync", e.Name);
File.Copy(e.FullPath, destination);
}
public static void OnRenamed(object source, FileSystemEventArgs e)
{
тогда я обрабатываю onrenamed, ondeleted и т. Д.
Может кто-нибудь дать толчок в правильном направлении, пожалуйста?
Спасибо