public void WatchFile(string path) { if (!path.ToLower().Contains(":\\progra")) { return; } var dir = Path.GetDirectoryName(path); if (!Path.IsPathRooted(dir)) { dir = Path.GetFullPath(dir); } if (!Directory.Exists(dir)) { Logging.Error("ignored watch on missing folder {0}", dir); return; } DirectoryWatcher w; if (!dwatchers.TryGetValue(dir, out w)) { if (!FileExists(path)) { Logging.Error("ignored watch on missing file {0}", path); return; } Logging.Emit("create new watcher for {0}", dir); w = new DirectoryWatcher(dir); dwatchers.Add(dir, w); w.FileChanged += OnWatchedFileChanged; w.Enable(); } var file = Path.GetFileName(path); w.Watch(file); }