2010-02-09 15 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