問題タブ [readdirectorychangesw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
819 参照

winapi - ReadDirectoryChangesW と、変更の原因となったプロセスの特定

どのプロセスがどのファイルに変更を加えているかを判断するにはどうすればよいですか。

私はこれを見つけました:

FileSystemWatcher: どのプロセスが変更を行ったかを知る方法は?

でも最近何か変わったのかな?どのプロセスがファイルシステムに変更を加えているかを特定することはまだ可能ReadDirectoryChangesWですか? カーネルドライバーを作成したり使用したりする必要はありません。

0 投票する
3 に答える
1087 参照

buffer-overflow - ReadDirectoryChangesW:非同期で使用するときにバッファオーバーフローを検出する方法は?

GetQueuedCompletionStatusと組み合わせてReadDirectoryChangesW(Windows API)を非同期的に使用しています。バッファオーバーフローの可能性を検出して、少なくとも1つのファイルシステム変更イベントが失われたことを理解するにはどうすればよいですか?

0 投票する
1 に答える
1650 参照

delphi - FILE_NOTIFY_CHANGE_LAST_WRITE フィルターのみを使用した ReadDirectoryChangesW が、ファイル編集時に複数のイベントを通知するのはなぜですか?

別のスレッド アプリケーション構成ファイルで監視しています。場合によっては、別の XML または別の INI である可能性があります。スレッド監視ディレクトリのコード (Delphi 内) は次のようなものです。

構成ファイルのフラグが変更されて保存されたときに、少なくとも 2 回シグナルを送信する理由と、正しいシグナルを取得する方法を教えてください。

0 投票する
0 に答える
940 参照

winapi - ReadDirectoryChangesW ファイル移動の回避策

バックグラウンド

ファイル システムの変更を監視するための Windows API ReadDirectoryChangesWは、ファイルの移動操作を確実に報告できません。代わりに、削除済み + 作成済みを通知するだけです。

質問

Windows でこのような「移動イベント」効果を実現するには、どのような回避策を実装できますか? これに対処したのは私が初めてではないと確信しています。


私自身の最初の考えは、監視対象のディレクトリ (おそらく SQLite データベース) 内のすべての SHA1 合計を保存し、変更されたファイルを SHA1 と比較して、delete + create が発生し、それらの sha1 合計が一致した場合に安全に想定できるようにすることでした。移動操作でした。これは少しやり過ぎのように感じますが、他の誰かがすでにより良い回避策を見つけているのではないかと思っています。

何か案は?

0 投票する
2 に答える
1307 参照

c++ - ReadDirectoryChangesW の問題

この質問ReadDirectoryChangesWに 基づいて、ディレクトリの変更を非同期的に監視するために使用 していますが、特定のディレクトリを監視する関数を実装していますが、それでもエラーメッセージが表示されます GetQueuedCompletionStatus(): Timeout

ReadDirectoryChangesWと非同期で使用する方法を知る必要がありますIoCompletionPort

助けてください。

0 投票する
1 に答える
670 参照

filesystemwatcher - DataOntap での FileSystemWatcher の使用

現在 Windows Server マシンでホストされているネットワーク共有でファイルの作成/削除アクティビティを監視するプロジェクトがありますが、DataOntap を実行している NetApp ボックスにファイルを移動することを検討しています。彼らの API ドキュメントには、FileSystemWatcher が内部で使用しているものである ReadDirectoryChangesW をサポートしていると書かれていますが、完全な実装ではないのではないかと懸念しています。注意すべき落とし穴はありますか?

0 投票する
1 に答える
1780 参照

c++ - CreateFile、ReadDirectoryChanges の問題

ReadDirectoryChangesWで開いたフォルダーをスパイするために使用してCreateFileいます。ファイルが追加されたらOnFileChanged、サイズを読み取って読み取り用に開く関数()を呼び出します。アプリケーションは小さなサイズのファイルに対しては正常に動作しますが、しようとすると問題が発生します大きなファイルを自分のフォルダー (7,24 M) にコピーすると、Permission deniedfopen を呼び出して読み取るとエラーが発生します。

監視プロセスはこれに基づいています

ファイルの処理方法がわかりませんでした。それを読み取らせてくれませんか? 呼び出した後に Sleep() を呼び出しOnFileChanged、終了したら目を覚まそうとしましたが、無駄でした。任意のアイデアをお願いします。

0 投票する
1 に答える
1738 参照

python - ReadDirectoryChangesW にイベントがないようです

ReadDirectoryChangesW を使用してサブツリーのファイル変更を監視しようとしましたが、一貫性のない結果が得られることがわかりました。以下は、問題を説明する自己完結型のテスト ケースです。これを実行すると、次のように生成されることがあります。

別の時には、次のように生成される可能性があります。

巨大なバッファを作成しましたが、変更されるファイルの数は非常に少なくなっています (3 ファイル)。

コード:

0 投票する
2 に答える
506 参照

c++ - Wchar_t から文字列への変換

ファイルパスを確認できるように、 strFileNotifyInfo[1].FileName (Wchar_t) を文字列に変換したいと考えています。しかし、私はそれを機能させることはできません。

これが私のコードです:

0 投票する
1 に答える
1084 参照

c++ - GetQueuedCompletionStatusEx()、ReadDirectoryChangesW()

複数のファイルシステム階層への変更の通知を使用GetQueuedCompletionStatusEx()して受信しようとしています。ReadDirectoryChangesW()

一度に多くの変更が行われると、エラー0x10Cの完了パケットを受信することに気付きました。このエラーコードは、私がインクルードしたヘッダーファイルのどこにもありませんでしたし、ドキュメントにもありませんでした(http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85 ).aspx)。STATUS_NOTIFY_ENUM_DIR少し掘り下げてみると、で定義されていることがわかりましたntstatus.h。STATUS_NOTIFY_ENUM_DIRはドキュメントに記載されておらず、ntstatus.hを含める必要もありません。MSDNは、そうすべきだったことを示していますERROR_NOTIFY_ENUM_DIR。だから私は疑問に思っています、これはドキュメントのバグですか、それとも私は何か間違ったことをしていますか?