c#中的文件系统监视程序只被触发一次
本文关键字:一次 文件 系统监视 程序 | 更新日期: 2023-09-27 18:19:16
我正在启动系统托盘应用程序中的文件系统监视器。监视器是本地文件夹中的文本文件。但是,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();
我没有处理创建/删除之类的事件。但是我也尝试了这些(只是为了检查),它们根本没有被调用,尽管在此过程中正在删除和创建本地文件。
意见/建议吗?
它可能正在被垃圾收集。您是否保留了对该对象的引用?
你确定fWatch的实例没有被处理吗?它是一直侦听的方法的一部分吗?否则你可能只在实例存在时才获得事件。你能把你用来保持观察者存活的代码写出来吗?这样我们可以更详细地帮助你。
作为重载之一,您可以将想要监视的路径传递给该对象的构造函数
FileSystemWatcher fWatch = new FileSystemWatcher(Path.GetTempPath());
例如. . ?