6

特定のディレクトリの変更ファイルを知りたいです。そこで、ReadDirectoryChangesW() および FindFirstChangeNotification() - FindNextChangeNotification() API を見つけました。

次に、 ReadDirectoryChangesW() 関数を使用して実装しました。しかし、FindFirst...blabla API がある理由がわかりません。ReadDirectoryChangesW() 関数は、FindFirst... API のすべての作業を実行できると思います。

違いは何ですか?

4

1 に答える 1

5

FindFirstChangeNotification :

変更通知ハンドルを作成し、最初の変更通知フィルター条件を設定します。{...}この関数は、待ち条件を満たした変化を示すものではありません。通知の一部として特定の変更に関する情報を取得するには、ReadDirectoryChangesW 関数を使用します。

ReadDirectoryChangesW :

指定されたディレクトリ内の変更を説明する情報を取得します。この関数は、指定されたディレクトリ自体への変更を報告しません。

結論:

ファイル リスナーを登録する場合は、FindFirstChangeNotificationを使用しますが、この関数は変更を待機しないことに注意してください。これを実現するには、ファイル リスナーの登録後にWaitForSingleObjectを使用する必要があります。

リッスンしているパスの変更の種類を気にしない場合は、ReadDirectoryChangesWを使用する必要はありませんWaitForSingleObjectをトリガーした正確な変更を知る必要がある場合は、ReadDirectoryChangesWを使用する必要があります。

于 2015-03-25T08:57:34.747 に答える