【问题标题】:FileSystemWatcher Changed event doesn't fireFileSystemWatcher Changed 事件不会触发
【发布时间】:2012-12-15 07:39:34
【问题描述】:
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = @"C:\foo.txt";
fsw.Changed += new FileSystemEventHandler(LogFileChanged);

private void LogFileChanged(object s, FileSystemEventArgs e)
{ 

}

如果我在LogFileChanged() 中设置断点 -> 打开并编辑foo.txt -> 保存文件,断点不会命中。有人可以解释我错过了什么吗?

【问题讨论】:

  • 断点在哪里?
  • @dtryon 在LogFileChanged 方法中
  • 您是否尝试过添加System.Diagnostics.Debugger.Launch(); 而不是断点?至少可以证明这不是附件问题。
  • 一个好的文本编辑器永远不会更改文件,这可能会导致无法挽回的数据丢失。相反,它会写入一个新文件,重命名旧文件,重命名新文件,删除旧文件。没有更改事件。
  • 顺便说一句,您的 LogFileChanged() 方法不应该是 static 吗?因为你不能从FileSystemEventHandler 访问它而不定义它的类对象。

标签: c# winforms


【解决方案1】:

这是一个文件不是路径

fsw.Path = @"C:\foo.txt";

你需要设置

fsw.Path = @"C:\";
fsw.Filter = "foo.txt";

Filter Property

【讨论】:

    【解决方案2】:

    你设置了这个属性吗?

     fsw.EnableRaisingEvents = true;
    

    【讨论】:

    • 是的,我刚刚添加了,恐怕没有帮助。
    • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @durron597 这是一个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多