我正在系统托盘应用程序中启动文件系统观察程序。它监视本地文件夹中的文本文件。但是FS_changed事件在启动应用程序后只触发一次。
FileSystemWatcher fWatch = new FileSystemWatcher();
fWatch.BeginInit();
fWatch.Path = Path.GetTempPath();
fWatch.Filter = "File1.txt";
fWatch.Changed += new FileSystemEventHandler(fWatch_Changed);
fWatch.EnableRaisingEvents = true;
fWatch.EndInit();
我没有处理创建/删除的事件。但我也尝试了这些(只是为了检查),尽管在此过程中删除并创建了本地文件,但它们根本没有被调用。
有任何想法/建议吗?
答案 0 :(得分:5)
它可能会收集垃圾。你是否保留对该对象的引用?
答案 1 :(得分:1)
你确定没有处理fWatch的实例吗?它是一个持续监听的方法的一部分,否则你可能只在实例存在时才收到事件。你能否把你正在使用的代码放在一边让观察者保持活力,这样我们就能更详细地帮助你。
答案 2 :(得分:0)
作为重载之一,你可以将你想要观察的路径传递给该对象的构造函数
FileSystemWatcher fWatch = new FileSystemWatcher(Path.GetTempPath());
例如..?