ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Windows Scriptコミュの【質問】ファイルの状態検知について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。
質問があり書き込みさせていただきます。

WSH Lab.様の掲示板にも書き込みさせていただいてしまったのですが、
あちらの掲示板の書き込みを削除できないため、二重書き込みになってしまい、申し訳ありません。

現在
WindowsXP
Windows Script Host Version 5.6

にて、開発を行っています。

あるフォルダを監視し続け、そこにファイルが投げ込まれた際、ちょっとした処理を加えて、別フォルダに移すというスクリプトを作成しています。
大体の処理が完成したところで大きなファイルのコピー中に作業を行ってしまい、エラーになってしまうという問題が発見され、解決方法を探しています。

在考えているのは、投げ込まれたファイルの移動・コピーの状況を取得し、完了した状態を検知したのち処理を行うようにする方法なのですが、

・ファイルの移動・コピーの状況を取得し、完了した状態を検知する方法

がわからない状態です。
FileSystemObject.GetFile()で、ファイル情報を取得し続けるプログラムを書いてデータを見てみたのですが、
どうもコピー前と完了後でデータの値が変わらないのです。

他言語での開発状況が整っていない状態で、WHSに不向きな処理を行っている気もするのですが、ご教授お願いします。
よろしくお願いします。

コメント(6)

排他制御を指定しての書き込みがFileSystemObjectで出来ないっぽいので、単独で検出は厳しそうですね。
WMI を利用するとか方法は一応ありますが、
完璧にするためにはかなり厄介なので、
設計を見直した方が正直いいと思います。
特殊な状態を判別するより設計を見直してみては?

以下は実際に業務で使用している手法です。

●制御ファイルとデータの2ファイルで送信完了を認識

例)FTP送信されたデータの取り込み

 ・送信側(順序はDAT⇒CTL)
  1.データファイルの送信(移動)
  TEST_YMD_HNS.DAT
  2.制御ファイルの送信(移動) ※0バイトで可
  TEST_YMD_HNS.CTL

 ・取得側

   制御ファイルを検知すれば、
   データ送信は完了しているのでデータの処理を行う。
   取得後は別のフォルダにCTLとDATを移動(バックアップ)
   ※DATのみの場合は転送中の可能性があるので
    処理対象外とし、何もしない。

いかがでしょうか?
書き込みモードでファイルをオープンして、別フォルダに移動してから、ファイルの加工

...FileSystemObjectって書き込みモードでファイルオープンできたよね
最近使ってないから、仕様を忘れた (−−;
ハンディ・ライヨン様
みちえる様
ちゃっぴ様
なっかん様

ご回答ありがとうございます。
やはり設計を見直したほうが良いようですね…

これで自信を持って先に進めます!!
また何かありましたら、よろしくお願いいたします。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Windows Script 更新情報

Windows Scriptのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。