c# - FileSystemWatcher 不触发事件

标签 c# filesystemwatcher

出于某种原因,我的 FileSystemWatcher 没有触发任何事件。我想知道何时在我的目录中创建、删除或重命名新文件。 _myFolderPath 设置正确,我已经检查过了。

这是我当前的代码:

public void Setup() {
    var fileSystemWatcher = new FileSystemWatcher(_myFolderPath);
    fileSystemWatcher.NotifyFilter = NotifyFilters.LastAccess | 
      NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

    fileSystemWatcher.Changed += FileSystemWatcherChanged;
    fileSystemWatcher.Created += FileSystemWatcherChanged;
    fileSystemWatcher.Deleted += FileSystemWatcherChanged;
    fileSystemWatcher.Renamed += FileSystemWatcherChanged;

    fileSystemWatcher.Filter = "*.*";
    fileSystemWatcher.EnableRaisingEvents = true;
}

private void FileSystemWatcherChanged(object sender, FileSystemEventArgs e)
{
    MessageBox.Show("Queue changed");
    listBoxQueuedForms.Items.Clear();
    foreach (var fileInfo in Directory.GetFiles(_myFolderPath, "*.*", SearchOption.TopDirectoryOnly))
    {
        listBoxQueuedForms.Items.Add(fileInfo));
    }
}

最佳答案

您似乎在设置方法中将 FileSystemWatcher 创建为局部变量。这当然会在方法结束时超出范围,并且很可能会在此时进行整理,从而移除 watch 。

尝试在 FSW 将被持久化的位置(例如程序级变量)创建 FSW,看看是否能解决问题。

关于c# - FileSystemWatcher 不触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16278783/

相关文章:

c# - 路径不是合法形式

c# - 将逗号分隔的列表绑定(bind)到 asp.net web api 中的 List<int>

c# - 用于构建加载我的程序集并构建序列化 NHibernate 配置的 MSBuild 任务

C# 检测文件在不同的文件夹中 move

java - 如何使用 JDK 7 区分文件删除和目录删除?

.net - 当 Excel 2007 以兼容模式打开 XLS 文件时,FileSystemWatcher.Changed 立即触发

c# - radio 流媒体 Windows Phone

c# - 使用 C# 创建新的 sql server 表

C#串口rs232奇偶错误

c# - .net FileSystemWatcher 不拾取移动的文件夹