投稿日 | : 2003/10/27(Mon) 21:02 |
投稿者 | : イエロー |
Eメール | : |
URL | : |
タイトル | : ディレクトリの監視 |
お力をお貸し下さい。
実は、VB6.0を使用し、共有のディレクトリを監視し、ファイルが置かれたら、
自分のローカルフォルダにコピーするツールを作成しています。
その大まかな処理を以下に書きます。
------処理の流れ---------
[監視実行]、[監視中止]ボタンがあり、[監視実行]ボタンを押すと以下の処理
をします。
監視するフォルダを指定し、ハンドルを返します。
TargetDirには、"\\(コンピュータ名)\(監視ディレクトリ)\"を入れています。
hand = FindFirstChangeNotification(TargetDir, False, FILE_NOTIFY_CHANGE_FILE_NAME)
↓
2秒間待ちます。
ret = WaitForSingleObject(hand, 2000) (※)
↓
WaitForSingleObjectの戻り値が、WAIT_OBJECT_0と等しい場合、監視している
ディレクトリの自分のローカルフォルダに、ファイルをコピーし、以下を実行
し、※に戻ります。
ret = FindNextChangeNotification(hand)
↓
[監視中止]ボタンが押されたら以下を実行し、終了します。
FindCloseChangeNotification(hand)
-------------------------
このプログラムを実行すると、自分のマシンから共有フォルダに対し、ファイ
ルを置いた場合は、※部分でWAIT_Object_0が返ってくるので、監視している
ディレクトリのファイルを、ローカルマシンにコピーすることができるのです
が、共有側のマシンで、共有しているフォルダ(監視しているフォルダ)にフ
ァイルを置くと、ファイルが追加されているにも関わらず、※部分でWAIT_Obj
ect_0が返ってこないので、ローカルマシンにコピーする事ができません。
どうして自分のマシンからアクションを起こした時にはファイルをコピーでき
るのに、外部からのアクションに対し、コピーができないのかがわかりません。
皆様のお力をお貸し下さい。
返信宜しくお願い致します。