well, your FileSystemWatcher object is constrained by its scope. In other words, you defined the object INSIDE the foreach loop, and it ain'd gonna do squat because when you exite the current iteration, it goes out of scope.
Refactor your code by defining the following object in your CLASS as opposed to being defined in the method.
List<FileSystemWatcher> watchers = new List<FileSystemWatcher>()