• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Vista用にファイルをZip形式に自動圧縮するVBScriptを記述)

自動圧縮するVBScriptを記述する方法!

このQ&Aのポイント
  • Vista用にファイルをZip形式に自動圧縮するVBScriptを記述しました。しかし、ソースコードに待ち時間を挿入しないと圧縮に失敗します。
  • 待ち時間を設定することで圧縮に失敗する現象が起こりにくくなりますが、動作が完全に安定させることができません。
  • 待ち時間以外の方法で確実に処理する方法を採用したい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

http://okwave.jp/qa/q2006207.html 以前に載せたサンプルを利用されたのだと思いますが、私もあの時初めて利用したので、よくわからずに載せました。 あれから少しShellを少し覚え、自身で他の用途で利用しております。 0.5秒だからいいのではなく、PCの処理能力的と圧縮元のファイルサイズからに0.5秒だと、たまたまうまくいっただけだと思います。 CopyHere()を発行する前に、書庫内のファイル数を取得して、ファイルが書庫に追加されるまで待機するという処理が、本来求められるものだと思います。 ' 圧縮データを書き込みます。 Set sa = CreateObject("Shell.Application") With sa.NameSpace(target) Dim l_intCount l_intCount = .Items().Count .CopyHere source Do Until (l_intCount < .Items().Count) WScript.Sleep(1) Loop End With

MicroVAX
質問者

お礼

ご回答ありがとうございます。 ファイル数をカウントすることで適切な同期がとれることが確認できました。 おかげで解決できました。感謝します。