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);
}