在C#中的单个文件上使用FileSystemWatcher

Jim*_*mmy 45 .net c# filesystemwatcher

当我尝试将观察者路径设置为单个文件时,如下所示:

watcher.Path = filePath1;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

The directory name C:\Cromos 3.0\repository\diagnostics\dwm01_2011_06_13__09_03.LXD is invalid.
Run Code Online (Sandbox Code Playgroud)

你能只设置文件夹目录的路径吗?

Ste*_*eve 92

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

watcher.Path = Path.GetDirectoryName(filePath1); 
watcher.Filter = Path.GetFileName(filePath1);
Run Code Online (Sandbox Code Playgroud)

应该管用.

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

  • 解决了!我忘了:'watcher.EnableRaisingEvents = true;' (22认同)
  • 还要注意,你需要在设置完其他所有内容后设置`EnableRaisingEvents = true`,否则将无法工作。 (3认同)
  • 很有意义,但是当我更改文件内容时未调用“ OnChanged”事件。我的filesystemwatcher在类而不是“ Form1”内是否存在问题? (2认同)

Jus*_*vey 5

是的,但您可以通过将filter属性设置为文件名来查看特定文件.

例如

watcher.Filter = "dwm01_2011_06_13__09_03.LXD";
Run Code Online (Sandbox Code Playgroud)