> Можно ли отследить весь каталог только одним экземпляром класса FileSystemWatcher и если да то он используется так же как и в случаи File-а?
да, и диск тоже. например, для C:
using System.IO;
new FileSystemWatcher(@"C:\") { EnableRaisingEvents = true, IncludeSubdirectories = true }
.Changed += (s, e) =>
System.Diagnostics.Trace.WriteLine(
e.ChangeType + ", " + e.FullPath);