CopyFolderメソッドについて
いつもお世話になっております。
今回もWinActor自体というよりはVBScriptに関する質問です。
現在あるシナリオでWebサイトからファイルをダウンロードし、
いろいろと処理をしたあとサーバに格納しております。
このサーバへの格納の際、フォルダコピーのライブラリを使用していますが
どうもコピー漏れのような現象が稀に起きているようです。
「ようです」というのは自分では現象が確認できておらず、ユーザからの報告でしか事象を把握できていないためです。
ログを見る限りでは何のエラーもなくシナリオ完走しているため、疑わしきはフォルダコピーかなぁ、と考えております。
そこでCopyFolderメソッドについて検索してみたのですが、特にこれといって情報が見つかりませんでした。
BingAI先生に質問すると
FileSystemObjectのCopyFolderメソッドは非同期だからFolderExistsでコピー完了まで待機せよ、との案内が。
しかしBing(検索エンジン)で「filesystemobject copyfolder 非同期」で検索すると、
むしろCopyFolderメソッドは同期処理だよ、というページが見つかりました。
https://www.bugbugnow.net/2018/06/filesystemobject.html
(個人による検証っぽいので信憑性不明)
MSのページを見てもこの辺りの情報はなく、どちらが正しいのか判断が付かない状況です。
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/copyfolder-method
PCの状態(ネットワーク環境など)によって発生しうるというのは前提として、
このメソッドについてもう少し信憑性のある情報をお持ちの方はいらっしゃいますでしょうか。
【9/26追記】
フォルダコピー周辺の処理は以下の通りです。(本番よりも簡略化してます)
【追記の追記】
このコピー処理の後、ローカルのフォルダはすぐ削除してしまっています。
(後から確認してもログから状況証拠しか取れません)
コピー漏れの発生頻度は分かりません。
ユーザからの報告が今回初めてで、報告内容も「たまに発生する」というものでした。
(たまに、ということから少なくとも複数回発生している?)
対象のファイルサーバは上位のフォルダへのアクセス権が無くディスク容量などは確認できません。
コピーしているフォルダの容量は数百KB(1MBに満たない程度)で、フォルダ内にPDFが2~3個入っています。
格納先のフォルダは不特定多数がアクセスするフォルダのため、
今回報告してくれたユーザがフォルダを確認する前に他の人がフォルダ(あるいはファイル)を移動させた可能性は否定はできません。
が、いきなりユーザを疑うのも酷な話なので、ひとまずシナリオ側の調査をしている状況です。