フォルダーの内容からzip圧縮形式ファイルを作成する
設定ファイルで指定した場所に圧縮ファイルを作成して、指定したフォルダーの内容を追加するサンプルを作成します。
[1]JSON設定ファイルを用意する
「圧縮」フォルダーにJSONファイルを作成し、以下のような内容とします。順に圧縮対象のファイルを含むフォルダー名、圧縮ファイル名、展開対象のフォルダー名です。
値は適宜任意の値に変更できます。ただしSrcFolderの値のパスは存在して空でないようにする必要があります。また、SrcFolderとDestFolderは別の値にする必要があります。
準備で作成した「圧縮」フォルダーにUTF-8の形式で名前[設定.json]で保存します。
{ "SrcFolder": "フォルダー1", "ZipFile": "圧縮済.zip", "DestFolder": "解凍済" }
この時点でファイルの配置はこのようになっているとします。フォルダー1の中のファイル・フォルダーが圧縮対象です。
ドキュメント └──圧縮 │ 設定.json │ └─フォルダー1 │ A.png │ B.png │ C.txt │ D.xlsx │ └─test C.png
[2]新しいフローを作成する
Power Automate for Desktopを開きます。
トップ画面から[+新しいフロー]をクリックして、適当な名前で新規のフローを作成します。
[3]ドキュメントフォルダーを取得する
[フォルダー]アクショングループから[特別なフォルダーを取得]アクションを配置します。
以下の入力/選択をして保存します。
- 特別なフォルダーの名前:ドキュメント
- 生成された変数:%Documents%([生成された変数]を編集するには>を開いてクリック)
[4]基点フォルダーパスの変数を設定する
[変数]アクショングループから[変数の設定]アクションを配置します。
以下の入力をして保存します。
- 変数:%BaseFolder%
- 値:%Documents%\圧縮
[5]設定ファイルを読み込む
[ファイル]アクショングループから[ファイルからテキストを読み取る]アクションを配置します。
以下の入力をして保存します。
- ファイルパス:%BaseFolder%\設定.json
- エンコード:UTF-8(既定値)
- 生成された変数:%SettingJson%([生成された変数]を編集するには>を開いてクリック)
[6]設定JSONをカスタムオブジェクトにする
[変数]アクショングループから[JSONをカスタムオブジェクトに変換]アクションを配置します。
以下の入力をして保存します。
- JSON:%SettingJson%
- 生成された変数:%Setting%
[7]圧縮ファイル名変数を設定する
[変数]アクショングループから[変数の設定]アクションを配置します。
以下の入力をして保存します。
- 変数:%ZipFile%
- 値:%BaseFolder%\%Setting.ZipFile%
[8]ソースフォルダー変数を設定する
[変数]アクショングループから[変数の設定]アクションを配置します。
以下の入力をして保存します。
- 変数:%SrcFolder%
- 値:%BaseFolder%\%Setting.SrcFolder%
[9]フォルダーが存在するかを判定する
[フォルダー]アクショングループから[フォルダーが存在する場合]アクションを配置します。以降のアクションはこれと[End]までの間にアクションを配置します。
以下の入力をして保存します。
- フォルダーパス:%SrcFolder%
[10]フォルダーのファイルの一覧を取得する
[フォルダー]アクショングループから[フォルダー内のファイルを取得]アクションを[フォルダーが存在する場合]-[End]の間に配置します。
以下の入力をして保存します。
- フォルダー:%SrcFolder%
[11]フォルダーのサブフォルダーの一覧を取得する
[フォルダー]アクショングループから[フォルダー内のサブフォルダーを取得]アクションを[End]の前に配置します。
以下の入力をして保存します。サブフォルダーを含めたいのでオンにします。
- フォルダー:%SrcFolder%
- サブフォルダーを含める:オン
[12]圧縮ファイルにファイルを追加する
[圧縮]アクショングループから[ZIPファイル]アクションを[End]の前に配置します。
以下の入力をして保存します。
- アーカイブパス:%ZipFile%
- 圧縮するファイル:%Files%
[13]圧縮ファイルにサブフォルダーを追加する
[圧縮]アクショングループから[ZIPファイル]アクションを[End]の前に配置します。
以下の入力をして保存します。
- アーカイブパス:%ZipFile%
- 圧縮するファイル:%Folders%
[14]実行する
フローを保存して実行します。
[圧縮]フォルダーに指定した名前でzip圧縮ファイルが作成されています。
zipファイルはExplorerでも中身を確認したり解凍したりできます。
このサンプルでは使用しませんでしたが、[ZIPファイル]アクションでパスワードやコメントを付与することもできます。