C# 使用 FileSystemWatcher 跟踪文件夹连接

发布于 2024-10-16 21:06:45 字数 217 浏览 7 评论 0原文

是否可以配置 FileSystemWatcher 来监视与文件夹连接点链接的其他文件夹?

例如:

您正在观看 D:

您有 D:\junction 指向 E:\folder

当我在 E:\folder\file.txt 中创建文件时,我希望使用观察程序将其视为 D:\junction\file 。TXT。

这可能吗?

谢谢。

Is it possible to configure a FileSystemWatcher to watch other folders which are linked in with a folder junction point?

for example:

You are watching D:

You have D:\junction which points to E:\folder

When I create a file in E:\folder\file.txt I want to see it with the watcher as D:\junction\file.txt.

Is this possible?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

疏忽 2024-10-23 21:06:45

FileSystemWatcher 不应该监视连接或符号链接...它一次监视一个文件夹。

FileSystemWatcher is not supposed to monitor junctions or symlinks... and it monitors one folder at a time.

森林散布 2024-10-23 21:06:45

解决方法是为每个子文件夹(包括连接点)设置 FileSystemWatcher。

private static void SetupFileSystemWatchers(string path, FileSystemEventHandler changedEventHandler)
{
  if (!string.IsNullOrEmpty(path) && Directory.Exists(path))
  {
    var watcher = new FileSystemWatcher(path);
    watcher.IncludeSubdirectories = false;
    watcher.Changed += changedEventHandler;
    watcher.EnableRaisingEvents = true;

    foreach (var subDirectory in Directory.GetDirectories(path))
    {
      SetupFileSystemWatchers(subDirectory, changedEventHandler);
    }
  }

A workaround is to setup FileSystemWatcher for each subfolder including junction points.

private static void SetupFileSystemWatchers(string path, FileSystemEventHandler changedEventHandler)
{
  if (!string.IsNullOrEmpty(path) && Directory.Exists(path))
  {
    var watcher = new FileSystemWatcher(path);
    watcher.IncludeSubdirectories = false;
    watcher.Changed += changedEventHandler;
    watcher.EnableRaisingEvents = true;

    foreach (var subDirectory in Directory.GetDirectories(path))
    {
      SetupFileSystemWatchers(subDirectory, changedEventHandler);
    }
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文