Ich verwende FileSystemWatcher, um mehrere Ordner auf einem Netzwerkspeicher zu überwachen. Das Problem ist, dass ich die Anzahl der Änderungen für jeden Standort zählen muss. Der Zähler wird nicht korrekt erhöht, weil, wenn die Datei von der zweiten Stelle geändert wird der Zähler bereits bis 2.Wie kann die Anzahl der Änderungen an mehreren Standorten gezählt werden?
Ich habe den folgenden Code festgelegt ist:
private void button1_Click(object sender, EventArgs e)
{
FileMonitor(Directory.GetCurrentDirectory());
FileMonitor(@"C:\Users\NET\Desktop");
}
static int _counter = 1;
public static int Counter
{
get { return _counter; }
set { _counter = value; }
}
private void FileMonitor(string path)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.csv";
watcher.Changed += (s, e) => OnChanged(e.FullPath, watcher);
watcher.EnableRaisingEvents = true;
}
private static void OnChanged(string path, FileSystemWatcher watcher)
{
try
{
watcher.EnableRaisingEvents = false;
MessageBox.Show(Counter.ToString());
Counter = Counter + 1;
}
finally
{
watcher.EnableRaisingEvents = true;
}
}
Wie kann ich den Zähler gesetzt eindeutig zu sein für jede FileMonitor-Instanz?
Können Sie mir einen Link oder eine Probe von Code für die zweite Lösung? Ich verstehe nicht, wie ich den Zähler eines bestimmten Monitors erhöhen kann. – sarbo
@sarbo sehen meine bearbeiten – ganchito55
danke für dieses Beispiel. Ich habe einige Änderungen vorgenommen und jetzt funktioniert es wie es sollte. – sarbo