2010-02-09 56 views
4


在我的项目中,我需要连续观看多个FTP文件夹,如果有任何新文件出现,我需要选择文件名并执行一些操作。

如果这是正常的Windows /本地文件系统文件夹,我可以通过使用.net的SystemFileWatcher来实现此目的。

有没有像SystemFilewatcher观看FTP文件夹?


nrkFtp文件监视器,如.net中的SystemFileWatcher?

+0

FTP是您拥有或正在访问其他FTP的东西吗? – 2010-02-09 05:39:04

+0

FTP不是我自己的ftp,它是其他的ftps,我不知道他们正在使用哪种操作系统。 – nRk 2010-02-09 05:42:59

回答

7

不存在这种情况,因为FTP文件夹无法向您发送有关任何更改的任何事件。所以你必须用背景工作者写你自己的小班。这个人定期向ftp服务器询问目录列表,并将它与最后获得的列表进行比较。然后,您可以根据发生的更改发布一些事件。

因此,您将在.Net中获得一个事件类,但在引擎盖下它将成为拉线模型,其中包含很多线路上的流量。

+0

感谢奥利弗,我打算这样做,谢谢... – nRk 2010-02-10 06:32:57

0

我不明白@奥利弗的回答。当然,有一种方法可以使用FileSystemWatcher类来监视FTP文件夹中的事件,它不是拉模型。我正在创造一些只是喜欢它,现在,利用该模型,因为这MSDN文章中描述:

Windows Services: New Base Classes in .NET Make Writing a Windows Service Easy

要有效地使用FSW,构建成一个Windows服务,并将它看FTP文件夹。当然,你需要将它安装在FTP服务器上(而不是网络中的其他地方),但它会完全满足你的需求。

+0

从我收集的问题是关于远程*观看FTP文件夹,即做某种反向同步。如果问题真的是关于在本地服务器上观看FTP“dropoff”文件夹,那么你当然是正确的。 – Aaronaught 2010-04-06 00:37:45

+0

@Cyber​​herbalist:是的,如果你是服务器,你可以在这台服务器上实现一个FSW(在服务器上创建文件的人是无关紧要的)。但问题是一个ftp客户端如何在ftp服务器上实现一个FSW。在这种情况下,你总是有一个拉模型,导致ftp协议没有任何指定的机制。 – Oliver 2010-04-06 11:48:51