0

我正在寻找一种良好且稳定的方法来监控 NAS(作为共享安装)上的文件更改(创建/删除/重命名等)。

我知道.NET 提供了一个FileSystemWatcher -Object,但我听说它在远程存储设备上不可靠。

我正在考虑轮询远程设备并检查这些文件是否已更改(与以前收集的文件属性不同)。

编辑:具体要求:

  • 监控 NAS 上目录上的文件/文件夹更改(给定路径,可能还有某种过滤器)
  • 记录更改:最好是在文件级别,说“文件-x 重命名/创建/删除”,但也可以在文件夹级别,说“文件夹-x 中的某些内容发生了变化”
  • 能够运行外部可执行文件
  • 在 WinServer 上作为 Windows 服务运行(不需要特定的 .NET 版本)

是否有任何通用技术或最佳实践来解决这个问题?

编辑:如何唯一标识一个文件?

无法通过名称识别文件(因为它可以更改)。

但是是否可以像 Onkelborg 建议的那样使用最后修改/创建的时间戳(毫秒,以 64 位整数表示)唯一地标识文件?或者你还有其他想法吗?

4

1 回答 1

1

您希望保持目录和文件的数量非常少 - 您需要遍历您感兴趣的每个目录,并获取每个文件的某种“标签”。您需要保留所有文件及其“标签”的列表,以便进行比较。“标签”可以是“最后修改日期”或文件长度,或两者兼而有之。(我推荐“最后修改日期”。我不推荐文件长度。)

我认为您应该更具体一些,您的要求是什么?有什么特别的吗?如果没有,我写的就是你需要的:递归构建树,等待,再次构建,比较,迭代。

于 2012-09-01T21:43:04.123 回答