private static FileSystemWatcher GetWatcher(string directory) {
FileSystemWatcher result;
if (Watchers.TryGetValue(directory, out result)) return result;
Directory.CreateDirectory(directory);
result = new FileSystemWatcher {
Path = directory,
NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName,
Filter = "*",
EnableRaisingEvents = true,
IncludeSubdirectories = true
};
Watchers[directory] = result;
return result;
}