4

UNIX システムでファイルを変更し、Windows ボックスでそれらにアクセスしています。サーバーは samba を実行し、クライアントによってある程度のキャッシュが行われます。UNIX 側でファイルを変更する場合、ファイルの新しいバージョンを表示する唯一の確実な方法は、Windows エクスプローラーで右クリックして [更新] を選択することです。

Windows エクスプローラーで右クリックして [更新] を選択するのに相当する Windows API を探しています。エクスプローラーにメッセージを送信して更新することについて SO に関する他の質問がありますが、それは私が望むものではありません: エクスプローラー ウィンドウの内容は気にしません。ディレクトリ。古いデータが表示されないように、キャッシュを無効にする効果をプログラムに統合したいだけです。

4

1 に答える 1

4

CIFS には、更新の通知システムが含まれています。Explorer はこれを登録し、Samba から送信されたすべての変更を反映します。Windows に更新が必要であることを伝える他の A​​PI メカニズムについては知りません。

Samba は Linux inotify をサポートしているため、Explorer が表示しているフォルダーへの変更を自動的に取得し、Explorer の更新を送信する必要があります。

十分に新しいバージョンの Samba を使用していますか? また、Samba は inotify をサポートするようにビルドされていますか? これは明らかに Linux のみです。別の Unix では、同等の機能を実装できます。関連するコードは にありsmbd/notify_internal.cます。

于 2010-11-01T17:44:29.443 に答える