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

我没有处理创建/删除之类的事件。但是我也尝试了这些(只是为了检查),它们根本没有被调用,尽管在此过程中正在删除和创建本地文件。

意见/建议吗?

c#中的文件系统监视程序只被触发一次

它可能正在被垃圾收集。您是否保留了对该对象的引用?

你确定fWatch的实例没有被处理吗?它是一直侦听的方法的一部分吗?否则你可能只在实例存在时才获得事件。你能把你用来保持观察者存活的代码写出来吗?这样我们可以更详细地帮助你。

作为重载之一,您可以将想要监视的路径传递给该对象的构造函数

 FileSystemWatcher fWatch = new FileSystemWatcher(Path.GetTempPath()); 
例如

. . ?