【问题标题】:Monitoring of multiple files, starting from Windows boot从 Windows 启动开始监控多个文件
【发布时间】:2013-04-02 12:43:54
【问题描述】:

我正在尝试制作一个用于“标记”(在我的情况下它们实际上不是标记)Windows 文件、放置描述等的程序。语言:C#。我需要一些指导方针来监控所有这些“标记”文件,以便在它们被重命名、移动、删除时获得通知。我想从 Windows 启动到用户关闭 PC 的那一刻监控它们。 我已经检查了这个 FileSystemWatcher 类,但仍然:

  • 为我要关注的每个文件创建一个单独的此类实例是个好主意吗?
  • 它实际上是我应该为这个功能创建的 Windows 服务吗?

我非常乐意就我的最佳方法获得任何建议。

【问题讨论】:

    标签: c# windows file notifications


    【解决方案1】:

    您应该使用FileSystemWatcher 来监视目录(可能还有子目录)。它将被通知监视目录中所有文件的更改。然后,您可以筛选出您想要观看的单个文件。

    我会为您要观看的每个顶级目录建议一个FileSystemWatcher。因此,如果您正在观看:

    /dir1
    /dir1/subdir
    /dir1/subdir/sub-subdir
    /dir2
    

    那么您将拥有两个FileSystemWatcher 组件:一个用于dir1,一个用于dir2

    Windows 服务是此工具的不错选择。另一个不错的选择是在启动时作为计划任务运行的控制台应用程序。计划任务的好处是可以让您更轻松地启动和停止它。这可能是您想要进行初始开发的方式。将控制台应用程序转换为服务非常容易。

    【讨论】:

    • 话虽如此,为计算机上的每个卷都有一个 FSW 是个好主意吗?
    • @IlianVasilevKulishev:您必须平衡 FSW 实例的数量与预期负载。如果某个目录每分钟都有数百个新文件或更改文件,您可能不想查看整个卷。在这种情况下,您最好为您感兴趣的目录制作单独的 FSW 组件,这样它就不会收到您不关心的文件的所有无关通知。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多