WinActor

2021.04.15
サンプルシナリオ ファイル関連 日付関連
指定したフォルダ内の指定した条件(拡張子等)に合致するファイルのうち、古いファイルに対して処理を行うサンプルシナリオ

指定したフォルダ内の指定した条件(拡張子等)に合致するファイルのうち、古いファイルに対して処理を行うサンプルシナリオとなります。

Excelファイルを日付管理にてバックアップを行っている場合に、不要となった古いバックアップファイルを削除する場合などに利用することが可能です。

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

サンプルシナリオ概要

はじめに

指定したフォルダ内の指定した条件(拡張子等)に合致するファイルのうち、古いファイルに対して処理を行うサンプルシナリオ (以降、本サンプルシナリオ) について説明します。

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

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

  • 指定されたフォルダ内から、指定された検索条件と一致するすべてのファイルパスを取得します。
  • 取得したファイルパスから比較対象となる日付を取得します。
    • 比較対象となる日付は、選択ボックスで選択された「ファイルの更新日時」と「ファイル名に含まれる日付」のどちらかになります。
  • ファイルパスと取得した日付をカンマ区切りで結合し、ファイル情報として配列に保存します。
  • ファイルから取得したそれぞれの日付を比較し、最新の日付を変数に保存します。
  • 配列に保存したファイル情報を配列から取得し、変数に保存した日付と後方一致で比較します。
  • 比較結果が一致しなかった場合は、一致しなかったファイル情報に含まれるファイルパスに対して、選択された処理を行います。
    • 選択できる処理は、削除、移動、圧縮の3種類になります。

本サンプルシナリオで処理対象となるフォルダは、指定されたフォルダのみで、指定されたフォルダに存在するサブフォルダは処理対象に含まれません。
また、処理対象となるファイルは、変数一覧内のファイル検索条件に指定された検索条件と一致するファイルになります。
2つ目の選択ボックスで「ファイル名に含まれる日付」が選択された場合は、ファイル名から日付を取得するため、検索条件と一致してファイル名が特定の形式である必要があります。
ファイル名の形式は、本サンプルシナリオの制約事項をご覧ください。

以下のような状態にて有効に活用することが可能です。
  ファイル名に日付をつけて、更新時にバックアップを作成するなどの管理を行っている際に利用(AAAの古いExcelファイルを削除)
  ファイル検索条件に「AAA*」を指定、比較対象となる日付に「ファイル名に含まれる日付」を選択、ファイルに行う処理に「削除」を選択
  指定されたフォルダに存在するファイル:
  ①AAA_20200101.xlsx
  ②AAA_20200102.xlsx
  ③AAA_20200201.xlsx
  ④BBB_20200201.xlsx
  ⑤BBB_20200301.xlsx

  1.指定されたフォルダ内からファイル名の先頭がAAAとなっている①~③のファイルパスを取得します。
  2.①~③のファイルパスから日付を取得します。
  3.ファイルパスと取得した日付をカンマ区切りで結合し、①、②、③のファイル情報として配列に保存します。
    ①のファイル情報は、AAA_20200101.xlsx,20200101となります。
    ②のファイル情報は、AAA_20200102.xlsx,20200102となります。
    ③のファイル情報は、AAA_20200201.xlsx,20200201となります。
  4.取得した日付の比較を行い、最新の日付である2020201を変数に保存します。
  5.配列に保存した②と③のファイル情報を配列から取得し、変数に保存した20200201と後方一致で比較します。
  6.①と②のファイル情報は比較した結果が一致しなかったので、①と②のファイルを削除します。

使用するWinActorモジュール

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

  • ノード/ユーザ/選択ボックス
  • ノード/変数/変数値設定
  • ノード/変数/変数値コピー
  • ノード/変数/カウントアップ
  • 03_変数/02_辞書と配列/1次元配列操作(初期化).ums6
  • 03_変数/02_辞書と配列/1次元配列操作(情報取得).ums6
  • 03_変数/02_辞書と配列/1次元配列操作(情報更新).ums6
  • 06_文字列比較/後方一致比較.ums6
  • 07_文字列操作/02_切り出し・分割/文字列を前後に分割.ums6
  • 07_文字列操作/02_切り出し・分割/文字列切り出し(先頭何文字分).ums6
  • 07_文字列操作/02_切り出し・分割/文字列切り出し(途中文字).ums6
  • 07_文字列操作/02_切り出し・分割/文字列切り出し(後方何文字分).ums6
  • 07_文字列操作/03_連結/文字列の連結(3つ).ums6
  • 07_文字列操作/03_連結/文字列の連結(5つ).ums6
  • 07_文字列操作/08_日付関連/日付書式変換.ums6
  • 13_ファイル関連/02_ファイル操作/ファイル削除.ums6
  • 13_ファイル関連/02_ファイル操作/ファイル移動.ums6
  • 13_ファイル関連/02_ファイル操作/Zip関連/Zip圧縮.ums6
  • 13_ファイル関連/03_フォルダ操作/フォルダ作成.ums6
  • 13_ファイル関連/04_ファイル一覧/ファイル検索.ums6
  • プチライブラリ/03_変数/1次元配列の要素数を取得するライブラリ
  • プチライブラリ/07_文字列操作/文字列分割で要素を後方から取得するライブラリ
  • プチライブラリ/13_ファイル関連/指定したファイルの更新日時を取得するライブラリ
  • プチライブラリ/13_ファイル関連/ファイルパスからフォルダパスとファイル名を取得するライブラリ
    (プチライブラリはこちらからダウンロードできます)
  • スイートライブラリ/08_日付関連/2つの日時を比較
  • スイートライブラリ/13_ファイル関連/フォルダ削除
    (スイートライブラリはこちらからダウンロードできます)

動作確認環境

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

  • Windows 10、WinActor 6.3.1
  • Windows 10、WinActor 7.2.0

制約事項

ファイル名に含まれる日付を比較対象の日付とした場合、以下の制限があります。

  • ファイル名の形式は「文字列 + 日付 + ファイルの拡張子」、または「日付 + ファイルの拡張子」となります。
  • 日付の形式が「yyyymmdd」以外の場合は、処理が正しく行われない可能性があります。
  • 処理を行うファイルの判定は比較対象の日付のみで行うため、検索対象フォルダ配下のファイルが以下の場合、⑥以外に対して処理を行います。

 ①AAA_20200101.xlsx
 ②AAA_20200102.xlsx
 ③BBB_20200201.xlsx
 ④BBB_20200202.xlsx
 ⑤CCC_20200301.xlsx
 ⑥CCC_20200302.xlsx

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

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

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

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


Step2.動作に必要な変数の設定

本サンプルシナリオを実行するために必要な値を、変数一覧で設定します。

以下の変数を必要に応じて設定してください。

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

  • 検索対象フォルダ名
    • 検索対象となるフォルダ名を絶対パスまたは、相対パスで指定します。
      空の場合は、開いているシナリオのフォルダが対象となります。
      例) C:\winactor\Target

  • 移動先フォルダ
    • 選択ボックスで「移動」を選択した場合は、ファイルの移動先となるフォルダ名を絶対パスまたは、相対パスで指定します。
      移動する際にファイル名を変更したい場合は、変更後のファイル名も含めてください。
      空の場合は、開いているシナリオのフォルダが対象となります。
      存在しないフォルダのパスを相対パスで指定した場合は、開いているシナリオのフォルダに、指定した名前にファイル名を変更して対象ファイルを移動します。
      例) C:\winactor\Target

  • 圧縮ファイル名
    • 選択ボックスで「圧縮」を選択した場合は、拡張子付きで圧縮ファイルのパスを絶対パスまたは、相対パスで指定します。
      相対パスで指定した場合は、開いているシナリオのフォルダに圧縮ファイルが作成されます。
      例) C:\winactor\圧縮ファイル.zip

12447_input01.png
変数一覧画面



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

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

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

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

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

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

  • ループ回数
    • ファイル情報一覧配列から対象ファイルの取得を行うために設定されています。
      初期値:0

  • 日付2
    • 日付の比較を行うために設定されています。
      初期値:100/01/01

  • 区切り文字
    • ファイル情報一覧配列に登録する情報の作成を行うために設定されています。
      初期値:,(半角カンマ)

12447_input02.png
変数一覧画面



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

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


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

  • 削除を選択した場合

 変数一覧内の検索対象フォルダ名に指定したフォルダ内から、変数一覧内のファイル検索条件に指定した検索条件と一致する古いファイルが削除されていることを確認してください。

  • 移動を選択した場合

 変数一覧内の移動先フォルダに指定したフォルダ内に、変数一覧内のファイル検索条件に指定した検索条件と一致する古いファイルが存在することを確認してください。

  • 圧縮を選択した場合

 変数一覧内の圧縮ファイル名に指定した古いファイルが圧縮されて存在することを確認してください。


トラブルシューティング

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

サンプルシナリオ解説

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

1. 処理対象となるファイルパスの取得

本サンプルシナリオでは、1次元配列系ノードと2つの日時を比較ノードを使用して、最新の日付を持つファイルのパスを取得しています。

1.ファイルパスから日付を取得します。
2.ファイルパスと日付を結合して、ファイルパスと日付を持つファイル情報を作成します。
3.日付を比較して最新の日付を取得します。

■処理対象の日付をファイルの更新日時から取得する場合

12447_input03.png
ファイルの更新日時から日付を取得



■処理対象の日付をファイル名に含まれる日付から取得する場合

12447_input04.png
ファイル名から日付を取得1



12447_input05.png
ファイル名から日付を取得2



4.作成したファイル情報が持つ日付と、取得した最新の日付が同一か比較します。
5.同一でない場合は古い日付となるので、作成したファイル情報が持つファイルパスを対象のファイルパスとします。


12447_input06.png
処理対象となるファイルパスの判定



2. 処理の分岐

本サンプルシナリオでは、選択ボックスノードを使用して任意に変数値を変更し、ファイルへの処理を変更しています。
処理の選択肢を増やしたい場合は、以下の手順を参考にしてください。
例)コピー処理を追加する場合

1.WinAcrtorの変数に「コピー先ファイル名」を追加。

12447_input07.png
処理の選択肢を追加する際の設定例_変数名



2.古いファイルの処理選択を行う選択ボックスに、新しい選択候補として「コピー」を追加。

12447_input08.png
処理の選択肢を追加する際の設定例_選択ボックス



3.古いファイルに行う処理を分岐させている分岐グループの右側に、新しい分岐グループを配置。

12447_input09.png
処理の選択肢を追加する際の設定例_分岐追加



4.新しく配置した分岐グループの左側にファイル移動ノードを配置し、右側にファイルコピーノードを配置。

12447_input10.png
処理の選択肢を追加する際の設定例_追加したい処理の配置



5.新しく配置した分岐グループの条件式値1に「処理」を設定し、値2に「値⇒移動」となるように設定。

12447_input11.png
処理の選択肢を追加する際の設定例_追加した分岐の条件



変更履歴

版数 日付 修正内容
版数
1.0版
日付
2021/4/15
修正内容
初版
版数
1.1版
日付
2024/1/16
修正内容
・注意事項を削除
・ファイル名を「SS2104_12447_FileOperation_HandlingOldFile_1.0.1.zip」に変更

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

"ファイル関連"に関連するその他のサンプルシナリオ

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