2008-11-25 62 views
3

我在分佈式系統的大學課程中正在執行一個項目。我正在計劃創建類似於Dropbox(getdropbox.com)的東西,但是會有一些非集中的點對點轉換。爲此,我需要一些檢測目錄結構變化的方法。你如何看待Dropbox做到這一點?他們的實施工作非常好。我想知道他們是否使用Windows上的win32 api中的FileSystemWatcher,以及類似的和依賴於Linux和Mac的平臺。如何查看文件系統以進行更改

回答

1

據我所知,DropBox的(等)採用的是Windows服務(或Linux/Mac端的守護進程)來監視文件系統。在.Net中創建這種方法非常簡單,這種情況通常是Windows服務的教科書示例。我相信在C++中做類似的事情也是相當直接的。

下面是一個關於如何在Windows上創建服務的.Net簡單教程的鏈接。你需要爲你的解決方案做的所有事情是在Timer.Tick()事件中添加你的監視器邏輯。

http://www.developer.com/net/csharp/article.php/2173801

+1

我可能會誤解你打算在這裏做什麼。添加邏輯到計時器刻度?這是否意味着你打算得到一個目錄列出每個勾號並進行比較?沒有!不要這樣做! – 2009-11-25 21:36:17

3

在Linux方面,有個可怕的無證inotify的。如果你不介意使用glib,那麼GFileMonitor類很容易使用。我認爲它不是可移植的,所以它將僅限於Linux。