【问题标题】:How can I Monitor one folder in C#?如何在 C# 中监视一个文件夹?
【发布时间】:2016-04-18 12:03:39
【问题描述】:

我正在创建像 Google Drive 这样的应用程序。

我想监控客户端PC中的一个文件夹。如果客户端对该文件夹进行了任何更改,例如,创建一个新文件夹,创建文件,移动文件或目录,复制目录或文件等。

如果在 PC 上进行的任何更改将成为联机服务器。如果在联机服务器上进行的任何更改将反映脱机。

我很困惑如何实现这一目标。

我打算为文件夹监控创建 WIN SERVICE,如果有任何更改,它会调用 wcf 服务,该服务将在在线服务器上创建相同的文件夹并上传文件。

另一个想法是:在winservice中我维护目录结构的XML。当服务再次启动时,创建目录结构的xml并比较新旧xml,如果有任何变化,它将调用wcf。但这不适合我的想法。

请给我建议来完成这项任务。 考虑这个场景。

在客户端机器中 C:\我的文件 如果在 Myfiles 中创建的任何文件夹(如 A、B)或在 A->A1 中创建的任何子文件夹

然后我应该被告知此文件夹已创建,并将在 WEB 应用程序中创建。

在在线服务器上创建的结构类似。 如果在线进行任何更改,例如在 A->A2 中创建子文件夹 然后应该在客户端机器上创建相同的文件夹。

【问题讨论】:

  • 你需要做更多的研究。似乎不清楚您当前的问题是什么。描述一些场景(1. 文件夹包含文件 X 和 Y,2. 服务重新启动。3. 服务现在找到文件 X 和 Z)并决定您的方法是否可以处理这些场景。如需在运行时检测文件系统活动,请参阅 FileSystemWatcher。
  • 我添加了描述
  • 现在还是太宽泛了。您基本上是在问 “请解释我如何编写 DropBox 客户端-服务器架构”,这太宽泛了。做一些研究并提出一个具体的问题。

标签: c# xml wcf windows-services


【解决方案1】:

我相信 System.IO 中的 FileSystemWatcher 类应该可以满足您的要求。 您可以订阅事件以了解文件/目录的更改,然后通过网络服务等通信渠道将其同步到另一台机器。

这个link 有一个关于 FileSystemWatcher 实现的详细解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2016-12-24
    相关资源
    最近更新 更多