如何在C#中监控一个文件夹?

时间:2016-04-18 12:03:39

标签: c# xml wcf windows-services

我正在创建Google云端硬盘等应用。

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

如果在PC上进行的任何更改将转到在线服务器。如果在线服务器上进行的任何更改将反映离线。

我很困惑如何实现这一点。

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

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

请给我建议来完成这项任务。 考虑这种情况。

在客户端计算机中 C:\ Myfiles中 如果在Myfiles中创建的任何文件夹,如A,B或在A-> A1

中创建的任何子文件夹

然后我会被告知这个创建的文件夹,它将在WEB应用程序中创建。

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

1 个答案:

答案 0 :(得分:0)

我相信System.IO中的FileSystemWatcher类应该有助于您的要求。 您可以订阅事件以了解文件/目录更改,然后通过某些通信渠道(如webservice)将其同步到其他计算机。

这个link详细解释了FileSystemWatcher的实现。