WinActor

2020.10.15
サンプルシナリオ ファイル関連 変数 日付関連
複数フォルダから検索結果に該当する最新のファイルを取得するサンプルシナリオ

複数フォルダから検索条件に該当した最新ファイルを別フォルダにコピーするサンプルシナリオとなります。

拡張子がxlsxに該当するファイルを1つのフォルダに集める場合などに利用することが可能です。

本サンプルシナリオをダウンロードする前にこちらの注意事項を必ずご確認ください。

サンプルシナリオ概要

はじめに

複数フォルダから検索条件に該当した最新ファイルを別フォルダにコピーするサンプルシナリオ(以降、本サンプルシナリオ) について説明します。

注意事項

本サンプルシナリオ利用時の注意事項はこちらです。

本サンプルシナリオの概要

本サンプルシナリオは、以下の処理を行います。

  • 指定されたフォルダ内から、指定された検索条件と一致するすべてのファイル名とファイルパスを取得します。
  • 対象となるファイルと同名のファイルが複数存在する場合は、更新日時を取得します。
  • 更新日時を比較し、最新の更新日時を検索します。
  • 最新の更新日時を持つファイルを、保存先として指定されたフォルダにコピーします。

使用するWinActorモジュール

本サンプルシナリオでは、以下のWinActorモジュールを使用します。

  • ノード/変数/変数値設定
  • ノード/変数/カウントアップ
  • 03_変数/02_辞書と配列/辞書操作(初期化).ums6
  • 03_変数/02_辞書と配列/辞書操作(情報取得).ums6
  • 03_変数/02_辞書と配列/辞書操作(情報更新).ums6
  • 03_変数/02_辞書と配列/1次元配列操作(初期化).ums6
  • 03_変数/02_辞書と配列/1次元配列操作(情報取得).ums6
  • 03_変数/02_辞書と配列/1次元配列操作(情報更新).ums6
  • 06_文字列比較/後方一致比較.ums6
  • 07_文字列操作/03_連結/文字列の連結(3つ).ums6
  • 13_ファイル関連/02_ファイル操作/ファイルコピー.ums6
  • プチライブラリ/03_変数/02_辞書と配列/1次元配列の要素数を取得するライブラリ
  • プチライブラリ/03_変数/02_辞書と配列/辞書から指定したキーと情報を削除するライブラリ
  • プチライブラリ/13_ファイル関連/02_ファイル操作/指定したファイルの更新日時を取得するライブラリ
  • プチライブラリ/13_ファイル関連/04_ファイル一覧/ファイル検索(サブフォルダを含む)
  • プチライブラリ/13_ファイル関連/05_ファイル名/ファイルパスからフォルダパスとファイル名を取得するライブラリ
    (プチライブラリはこちらからダウンロードできます)
  • スイートライブラリ/08_日付関連/2つの日時を比較
    (スイートライブラリはこちらからダウンロードできます)

動作確認環境

本サンプルシナリオは以下の環境で動作確認しています。

  • Windows 10
  • WinActor 6.3.0、7.1.0

本サンプルシナリオの使い方

本サンプルシナリオの実施方法は以下の通りです。

Step 1. サンプルシナリオの読み込み

ダウンロードしたサンプルシナリオのZIPファイルを展開し、展開したフォルダに含まれている本サンプルシナリオをWinActorで読み込みます。

Step 2. 動作に必要な変数の設定・変更(任意)

本サンプルシナリオを実行するために必要な値を、変数一覧で設定・変更します。
以下の変数を必要に応じて設定・変更してください。

  • ファイル検索条件
    • ファイル名の検索条件を指定します。
      ファイル検索(サブフォルダを含む)ノードの検索条件パラメータと同じ条件指定が可能です。
      詳細はファイル検索(サブフォルダを含む)ノードの注釈をご覧ください。

  • 検索対象フォルダ名1
    • 検索対象となる1つ目のフォルダ名を絶対パスまたは、相対パスで指定します。
      例) C:\winactor\Target

  • 検索対象フォルダ名2
    • 検索対象となる2つ目のフォルダ名を絶対パスまたは、相対パスで指定します。
      例) C:\winactor\Target

  • 保存先フォルダ
    • 保存先のフォルダ名を絶対パスまたは、相対パスで指定します。
      例) C:\winactor\Target

11726_input1.png
変数一覧画面1

Step 3. 動作に必要な変数の確認

本サンプルシナリオを正常に実行するために必要な値が、変更されていないことを確認します。

以下の変数が変更されていないことを確認してください。

  • ファイルインデックス
    • 検索条件に一致するファイルパスの確認を行うために設定されています。
      初期値:1

  • ファイル情報一覧辞書
    • 辞書の作成を行うために設定されています。
      初期値:辞書

  • ファイル名一覧配列
    • 配列の作成を行うために設定されています。
      初期値:配列

  • 配列インデックス
    • ファイル名の確認を行うために設定されています。
      初期値:0

  • ループ回数
    • 対象ファイルのコピーを行うために設定されています。
      初期値:0

11726_input2.png
変数一覧画面2

Step 4. サンプルシナリオの実行

WinActorで本サンプルシナリオを実行します。

Step 5. サンプルシナリオの終了後の確認

変数一覧内の保存先フォルダに指定したフォルダ内に、変数一覧内のファイル検索条件で指定した検索条件のファイルがコピーされていることを確認してください。

トラブルシューティング

本サンプルシナリオでは、変数指定が不十分であった場合、エラーメッセージが出力されます。
詳細については、エラーメッセージ一覧を参照してください。

サンプルシナリオ解説

本サンプルシナリオで使用している実装テクニックについて解説します。

1. コピー対象となるファイルパスの取得

本サンプルシナリオでは、ファイル情報取得(更新日時)ノードと2つの日時を比較ノード、辞書系ノードを使用して、検索条件と一致するファイル名のうち、最新の更新日時を持つファイルのパスを取得しています。

  1. 変数一覧内の対象ファイルパス1に設定されているファイルパスからファイル名を取得します。
  2. 辞書にファイル名をキーとして、ファイルパスを情報に登録します。
  3. 正常に登録ができたら配列にファイル名を順番に登録し、ファイル名リストを作成します。
  4. 既に同一のキーが存在する場合は対象となるキーをもとに辞書から情報を取得し、変数一覧内の対象ファイルパス2に設定します。
  5. 重複したキーの情報を辞書から削除します。
  6. 対象ファイルパス1に設定されているファイルパスの更新日時と、対象ファイルパス2に設定したファイルパスの更新日時を取得します。
  7. 対象ファイルパス2に設定したファイルパスと更新日時を結合して、ファイルパスと更新日時を持つファイル情報を作成します。
  8. 2つの更新日時を比較して最新の更新日時を取得します。
  9. 作成したファイル情報が持つ更新日時と、取得した最新の更新日時が同一か比較します。
  10. 同一である場合は、対象ファイルパス2に設定したファイルパスを対象のファイルパスとして、辞書に登録します。
  11. 異なる場合は、対象ファイルパス1に設定したファイルパスを対象のファイルパスとして、辞書に登録します。

11726_input3.png

コピー対象のファイルパス取得

2. 検索対象となるフォルダ数の設定

本サンプルシナリオでは、サブルーチン系ノードを使用することで、検索対象となるフォルダ数を任意に設定することが可能です。
検索対象となるフォルダを増やす場合は、以下の手順で行ってください。

例)検索対象となるフォルダに3つ目を追加

  1. サブルーチン呼び出しノードをコピーします。
  2. コピー元のサブルーチン呼び出しノードの下にコピーしたサブルーチン呼び出しノードを配置します。
  3. コピーしたサブルーチン呼び出しノード内の検索対象フォルダ名1に、引数として3つ目のフォルダを指定している変数を指定します。

11726_input4.png

検索対象フォルダを追加する手順

11726_input5.png

サブルーチン追加後の引数設定

検索対象となるフォルダを減らす場合は、以下の手順で行ってください。

例)検索対象となるフォルダの2つ目を削除
1.2つ目のサブルーチン呼び出しノードを削除します。

11726_input6.png

検索対象フォルダを減らす手順

変更履歴

版数 日付 修正内容
版数
1.0版
日付
2020/10/15
修正内容
初版

本サンプルシナリオをダウンロードする前にこちらの注意事項を必ずご確認ください。

"日付関連"に関連するその他のサンプルシナリオ

サンプルシナリオ一覧へ戻る
このウェブサイトでは、お客様に最適なユーザー体験を向上するためにCookieを使用しています。
本サイトをご利用いただくことにより、お客様がCookieの使用に同意されたものとみなします。
弊社のCookieの使用に関する方針の詳細は、
「プライバシーポリシー」をご確認ください。