I posted a question here but deleted it after I found a rather tedious solution
I am trying to write an app that can monitor multiple folders. I looked at the following solutions: FIleSystemWatcher multiple folders (Dynamically) Create multiple instances of the same FileSystemWatcher Monitor multiple folders using FileSystemWatcher
I tried all their solutions. But what would happen is that it only worked for local folders. Not network drives.
My last implementation was a combination of all three:
public static void StartMultipleWatchers(string path)
{
    string[] paths = path.Split(',');
    foreach (string folderPath in paths)
    {
          try
          {
              string folderPathtrim = folderPath.Trim();
              WatchFile(folderPathtrim);
           }
           catch(Exception ex)
           {
               Logger.Error(ex);
           }
        }
    }
private static void WatchFile(string monitoredDir)
{
   FileSystemWatcher fsw = new FileSystemWatcher(monitoredDir, "*.gz");
   fsw.Changed += new FileSystemEventHandler(OnChanged);
   fsw.Created += new FileSystemEventHandler(OnCreated);
   fsw.EnableRaisingEvents = true;
   fsw.IncludeSubdirectories = true;
   Logger.Info($"Started loop Monitor of Folder: {monitoredDir}");
}
private static void OnCreated(object sender, FileSystemEventArgs e)
{
    FileInfo fileInfo = new FileInfo(e.FullPath);
    string value = $"Created: {e.FullPath}";
    Logger.Info(value);    
}
Again this solution only worked for local folder. Or if I only made one watcher that watched one network folder.
Then I tried this very tedious solution:
public static void TestManualWatchers()
{
   var fsw1 = new FileSystemWatcher(@"\\lap.org.com\tool_data_odp_ws\metrology\CIM\DATA_READY\");
   var fsw2 = new FileSystemWatcher(@"C:\TestPath\");
   fsw1.Changed += OnChanged;
   fsw1.Created += OnCreated;
   fsw1.EnableRaisingEvents = true;
   fsw1.IncludeSubdirectories = true;
   fsw2.Changed += OnChanged;
   fsw2.Created += OnCreated;
   fsw2.EnableRaisingEvents = true;
   fsw2.IncludeSubdirectories = true;    
   Logger.Info($"Started watching manual double files");
 }
Where I manually create each watcher and it's own properties. What is the difference between this tedious way and the dynamic above?
Is there a way to actually dynamically create individual watchers?
 
    