2011-09-08 94 views
11

是否有便攜式庫可以在不進行輪詢的情況下監視文件系統更改?C/C++中的便攜式目錄/文件監視庫

我知道有

但我還沒有找到任何可移植的包裝。

是否有適用於Linux,Windows和OS X或這些的子集的可移植包裝?

+1

GLib的[GIO](http://developer.gnome.org/gio/2.29/GFileMonitor.html)使用涵蓋Linux和FreeBSD的GAMIN,不瞭解OSX或Windows。 –

+0

Java對你來說不夠便攜嗎?或者你明確需要一個C++包裝? – dmeister

+0

Java對於任務有大到內存和磁盤空間佔用面積 – flob

回答

4

QFileSystemWatcher - Qt是非常跨平臺的。

+0

聽起來像是一種可能的解決方案。但我經歷了預編譯moc和慢編譯/鏈接不盡人意。我仍然希望有一個更精簡的解決方案存在(不需要手工將它從Qt中刪除)。 – flob

+0

CMake使MOC的東西變得非常簡單,QtCore是一個非常輕量級的庫,我從來沒有注意到編譯/鏈接需要額外的時間,但是您可能會嘗試GNU Gold作爲更快的替換鏈接http://en.wikipedia.org/wiki/Gold_(linker) – spraff

+0

FYI:在Windows上,QFileSystemWatcher和FindNextChangeNotification在使用過時版本的samba的linx服務器上的網絡共享上不能正常工作我們有一個服務器運行版本3.0.22,哪些問題)。在這種情況下,您必須強制QFileSystemWatcher使用輪詢實現。 – smerlin

1

看一看jnotify。它是用java編寫的,可以運行在所有主要的操作系統上。