【UiPath】zipファイル圧縮・解凍する方法




ファイルを圧縮してzipファイルとする方法とzipファイルを解凍する方法について紹介します。
今回はフリーソフト等は使わず、Windowsの標準の状態でできることを紹介します。(ただし、PowerShell5.0以上であること)
また、パスワードを付ける、外すということも除外します。

というわけで、Power Shellを使って圧縮、解凍をします。
一応、WindowsのメニューでPowerShellと検索して、PowerShellを開き、「$PSVersionTable」と入力して、バージョンを確認してから始めてください。
5未満の場合は、今回のコマンドが使用できませんのでご容赦ください…

さて、本題に入りまして、今回はPowerShellの「Compress-Archive」と「Expand-Archive」というコマンドを使用します。
UiPathのアクティビティとしてはInvoke Power Shellを使用しますので、こちらもご参照ください。

①圧縮方法
圧縮ではCompress-Archiveというコマンドを使い、以下のようなオプションを使用します。
-Path 圧縮するファイルパス配列
-DestinationPath 圧縮先ファイルパス

これを踏まえてサンプルとして、書いてみると
Compress-Archive -Path C:\test\zip\aa.txt -DestinationPath C:\test\zip\test.Zip
という感じになります。aa.txtというファイルを圧縮して、test.zipというファイルを作成するという感じです。
実行前は以下のような感じです。

これをUiPathのInvoke Power Shellを使って実装してみたいと思います。
実装方法はスクリプトで書くパターンとパラメータで書くパターンの2つがあります。(詳しくはこちらを参照)

・スクリプトで書く場合
Command Textにそのままコマンドを全文入力する。
IsScriptにチェックをつける。

・パラメータで書く場合
Command Textには”Compress-Archive”のみ入力
IsScriptのチェック外す
ParametersにPathとDestinationPathの情報を入力する

上記のどちらかで実行すると、zipファイルが作成されます。

Pathの内容を変えれば、フォルダごと圧縮したり、複数ファイルを圧縮したり…などもできます。

②解凍方法
解凍ではExpand-Archiveというコマンドを使い、以下のようなオプションを使用します。
-Path 圧縮ファイルパス
-DestinationPath 解凍先パス

これを踏まえてサンプルとして、書いてみると
Expand-Archive -Path C:\test\zip\test.Zip -DestinationPath C:\test\zip
という感じになります。test.ZipというファイルをC:\test\zip内に解凍するという感じです。
実行前は以下のような感じです。

これを圧縮と同じようにUiPathで実装します。

・スクリプトで書く場合
Command Textにそのままコマンドを全文入力する。
IsScriptにチェックをつける。

・パラメータで書く場合
Command Textには”Expand-Archive”のみ入力
IsScriptのチェック外す
ParametersにPathとDestinationPathの情報を入力する

上記のどちらかで実行すると、zipファイルが解凍されます。

以上、ファイルを圧縮してzipファイルとする方法とzipファイルを解凍する方法でした。
最初にも書きましたが、パスワードには対応してません。フリーソフトをいれればまた別のアプローチもできるかと思います。
また、PowerShellが古くて出来ない場合は、フォルダ開いて、右クリック>すべて展開というのを泥臭く実装するという方法も出来なくはないかと…!

他の機能一覧はこちら
他の作業一覧はこちら