Chromeからファイルをダウンロードし完了を確認する方法

3つの方法を考えましたが、①が思ったように動作しません。設定を教えてください。
①並列の中に、(a)(b)を配置して判断
(a)ダウンロード処理(webクリック)
(b)トリガースコープ内にファイル変更トリガー
→並列の条件を「True」にすると完了を待たずに並列処理が終わる
並列の条件を「DlFlg=True」にするとファイル変更トリガーで止まったままになる(”DL完了”が書き込みされず終了しない)
②Chromeの拡張機能(Always Clear Downloads 2)を使用。
DL完了後に頁下部に表示されるDLバーが自動で消えるようにして、バーが消えたら完了と判断
→拡張機能が必要であること、バー消滅判断は「すべて表示」の箇所(画像)なので、できれば使用したくない。
③アクティビティDownloadedFile使用
→Chromeは、DL中に「tmp」という拡張子で一時的に保存する為、DL完了していないのに完了したとみなす場合がある
なので、使用は避けたい

①の設定です
image
image
image
image

Chromeでファイルをダウンロードすると、ダウンロード中は「未確認 *****.crdownload」のファイルが保存先フォルダ内に一時生成されます。
このファイルが存在している間はダウンロードが未完了です。
このファイルが消えるまで、「パスの存在を確認」アクティビティを数秒間隔で繰り返して、ダウンロード完了が判定可能です。

2 Likes

N2027さん
ありがとうございます。
「.crdownload」が消えたらダウンロード完了と判断するのですね。
以下をやってみましたが、ダウンロードクリックして、ダウンロードが始まる前にパスの存在を確認してうまくいきませんでした。
・ダウンロード処理

・繰り返し処理でファイルパスがなくなるまで「パスの存在を確認」

並列処理に上記を入れてやってみましたが
これもまたタイミングの問題?でうまくいきませんでした。

確かに、「ダウンロードクリック」した直後は早すぎて「.crdownload」が存在してないかもしれません。
適当に待機などいれて調整してみてください。

以下の条件でダウンロードの完了が判定できると思います。

・フォルダ内に「.crdownload」が存在しない。
・フォルダ内に「ダウンロードしたファイル」が存在する。

N2027さん
ありがとうございます

ダウンロードされるファイル名がわかっている場合は確認できますが、わからない場合は難しいですね
強制的に待機はさせたくないので
③の後に繰り返し処理で「.crdownload」の存在確認させてうまくいきました!
①はできないのでしょうか

1 Like

こんにちは

並列アクティビティの動作仕様ですが、条件プロパティの評価は最初に実行されるときのみされる
だけなので、内部でその変数を更新しても、並列アクティビティの動作はかわりません。

このケースですと条件はFalse(または指定無し)にしておいて、TriggerScopeの
スケジュールモードをOneTimeにして、アクション欄はなにも指定しなければ
期待する動作と同じになるように思えますが、いかがでしょうか?
あと変更の種類はRenameも入れておいたほうが良いかもしれません。

2 Likes

Yoichiさん
いつもありがとうございます!
①のケース、ご教示頂いた設定で思ったように動作しました。
N2027さんに教えて頂いた「.crdownload」消滅で判断もいいですが、Chromeの仕様が変わって一時ファイル名が変更した場合に修正が必要になりますので
①が可能であれば、chromeに限らず対応できますので、これがベストかなと考えます。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.