【问题标题】:Use FileSystemWatcher on a single file in C#在 C# 中对单个文件使用 FileSystemWatcher
【发布时间】:2012-10-09 10:36:44
【问题描述】:

当我尝试将观察程序路径设置为单个文件时:

watcher.Path = filePath1;

我得到错误:

The directory name C:\Cromos 3.0\repository\diagnostics\dwm01_2011_06_13__09_03.LXD is invalid.

可以只设置文件夹目录的路径吗?

【问题讨论】:

  • watcher.Filter 会做你需要的。
  • @Charleh,我不确定我是否同意这一点,因为 FileSystemWatcher 还提供更改事件,因此您可能想知道特定文件何时更改。
  • 好吧,这是真的,我已经有一段时间没有使用它了 - 我很确定我已经读过有时当添加/删除大量更改/文件等时它可能不可靠

标签: c# .net filesystemwatcher


【解决方案1】:

您的错误是使用完整文件名设置 Path 属性

watcher.Path = Path.GetDirectoryName(filePath1); 
watcher.Filter = Path.GetFileName(filePath1);

应该可以。

与您的正确问题无关,但是,当然,如下面的 cmets 所述,必须将 EnableRaisingEvents 属性设置为 true 以启用 FileSystemWatcher 的功能

【讨论】:

  • 是有道理的,但是当我更改文件内容时不会调用 'OnChanged' 事件。我的文件系统观察器在一个类中而不是“Form1”是一个问题吗?
  • 您必须运行该类的实例,否则将没有文件监视程序。
  • 另外注意需要在设置完其他所有内容后设置EnableRaisingEvents = true,否则不起作用。
【解决方案2】:

是的,但是您可以通过将过滤器属性设置为文件名来监视特定文件。

例如

watcher.Filter = "dwm01_2011_06_13__09_03.LXD";

【讨论】:

  • 谢谢!如果我想观看多个单页,您知道这是否可行。即我的文件系统观察器位于“页面”类中。 1234562 的多个实例 = 多个单页被观看?
  • 也许,如果是静态的。 Page 对象将在结束响应后卸载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多