Моя программа должна контролировать несколько местоположений, но запускать один и тот же код для каждого местоположения. Поскольку один FileSystemWatcher
не может контролировать несколько местоположений, но возможно ли создать несколько экземпляров его и передать путь к папке для каждого?Создайте несколько экземпляров того же FileSystemWatcher
Я не могу скомпоновать каждый FileSystemWatcher
, так как все больше и больше местоположений необходимо будет добавить вовремя, и это должно быть сделано конечными пользователями, так как для меня крайне нецелесообразно вручную жестко кодировать новый FileSystemWatcher
каждый раз. Поэтому мой план состоял в том, чтобы пути к папкам сохранялись в файле, и программа просто создает FileSystemWatcher
для каждого пути в списке. Но я понятия не имею, возможно ли это в малейшей степени.
Переход на завод Method Узор предложение здесь попытка: я получаю ошибки: «Список" не содержит определения для „добавить“
public void StartWatchers()
{
string[] ArrayPaths = new string[2];
List<FileSystemWatcher> watchers = new List<FileSystemWatcher>();
ArrayPaths[0] = @"K:\Daily Record Checker\Test\Test1";
ArrayPaths[1] = @"K:\Daily Record Checker\Test\Test2";
int i = 0;
foreach (String String in ArrayPaths)
{
watcher.add(MyWatcherFatory(ArrayPaths[i]));
i++;
}
//Do other stuff....
//....
//Start my watchers...
foreach (FileSystemWatcher watcher in watchers)
{
Watcher.EnableRaisingEvents = true;
i++;
}
}
FileSystemWatcher MyWatcherFatory(string path)
{
FileSystemWatcher watcher = new FileSystemWatcher(path);
watcher.Changed += Watcher_Created;
watcher.Path = path;
watcher.Filter = "*.csv";
return watcher;
}
private void Watcher_Created(object sender, FileSystemEventArgs e)
{
System.Threading.Thread.Sleep(1000);
FileInfo fileInfo = new FileInfo(e.FullPath);
if (!IsFileLocked(fileInfo))
{
CheckNumberOfRecordsInFile(e.FullPath);
}
}
https://msdn.microsoft.com/en-us/library/system.object.memberwiseclone(v=vs.110).aspx –
Ваш обновленный код имеет «Watcher.add» ... вы хотите добавить к ваш список: watchers.Add –
Я шел по коду Owlsolo, но изменение его в список hte по-прежнему приводит к «List», не содержит определения для «add» –
Vereonix