2008-08-19 9 views
17

私はWindowsプログラミングを初めて学びました。ファイルシステムのすべての変更を通知しようとしています(SysInternalsのFileMonがAPIを介して表示する情報に似ています)。各(非ネットワーク、非substed)ドライブのFindFirstChangeNotificationは私の最善の賭けですか、それとも他のより適切なC/C++ APIがありますか?FindFirstChangeNotificationは、Windows上のファイルシステムの変更通知に使用するのに最適なAPIですか?

答えて

22

FindFirstChangeNotificationは、それは関数ポインタを必要としない

、それは手動でする必要はない細かいですが、ReadDirectoryChangesW.を使用する必要があります少し究極のパワーのために(実際には、それはでもドキュメントにお勧めします!)生のバッファをデコードするときは、Unicodeのファイル名を使用しますが、一般的にはより柔軟で柔軟性があります。

一方、FileMonの機能を実行するには、おそらくFileMonの機能を実行し、IFS to create and install a file system filterを使用する必要があります。

+0

私は最後にReadDirectoryChangesWに行きました。私はJavaコードに戻すことができるフォームに返されたバッファをどのように変換するのか楽しみながら作業しましたが、間違いなく私がしたいことはあります。 –

+0

私は事故でdownvoted今私はupvoteすることはできません – clyfe

0

他の方法もありますが、そのほとんどは自分の努力を必要とします(またはあなたのアプリからパフォーマンスを引き出すか、スレッドをブロックして使用するなど)。 FindFirstChangeNotificationは、関数ポインタなどを扱うことに慣れていない場合は少し複雑ですが、OSが大部分の作業を行うという利点があります。

-1

FileSystemWatcherクラスを使用できます。非常に効率的ですが、ネットワーク共有ドライブでは動作しません。

0

実際、FileSystemWatcherは共有ネットワークドライブで完全に機能します。私は現在、ファイルシステムの変更を監視するアプリケーションでこれを使用しています。 (www.tabbles.net)。

関連する問題