ファイルや、フォルダを圧縮したいとき、アーカイブ化して1つのファイルにまとめたい時に使用できるブロック、それが、Zip compress ブロックです。
作成したZipファイルをどこに保存するのかを指定します。
指定には、絶対パスか、相対パスの2つでパスの指定ができ、ファイル名も指定できます。
たとえば、作成したZipファイルを、
名前を 「Archive.zip」で、Documents フォルダに作成したいときは下記の通りの記述方法があります。
特に特別な理由がない場合はこちらの方法でパスを指定することをオススメします。
ルート上の特別なフォルダへの指定などは、絶対パスを使用します。
/storage/emulated/0
は Android のバージョン によって 異なります 。
/sdcard
だったり、 /mnt/sdcard
だったりします。
マルチユーザー機能が整備されてからは、/storage/emulated/0
というパスが多く見られるようになりました。
これは、相対パスを用いるのと同等なので、「こんな指定の仕方もできるんだー」程度に見てください。
存在しないディレクトリ を指定することは できません 。存在しないディレクトリを指定すると、 アーカイブは作成されません。
NotExistDirectory/Archive.zip
は作成されません。Existing/Archive.zip
は作成されます。ファイル名部分を記述していない場合 、つまり、フォルダしか指定していない場合は、フォルダが指定されていても アーカイブが作成されません 。
Downloads/Archive.zip
は作成される。Downloads
は作成されない。圧縮したいパスを入力します。
ファイルであるパスの場合は、Folder/memo.txt
のようになります。(一例)
フォルダであるパスの場合は、Folder
のようになります。(一例)
画像と文章はパス(path) が異なります。
フォルダ指定する場合は Compress directories recursively
を有効にする必要があります。
Zip内のフォルダのどこのディレクトリに圧縮したデータを保存するかを指定します。
↓ 空っぽのZipアーカイブ内のディレクトリ構造
/
ここに例えば、
と記述すれば、
/SubFolder
というディレクトリ構造になります。
ファイル又はフォルダを圧縮して上のような記述をしていると、
/SubFolder/pictures/screenshot_1.png
/SubFolder/pictures/screenshot_2.png
/SubFolder/Key.txt
/SubFolder/Topic.html
このように /SubFolder
にファイルが追加されていきます。
ディレクトリーの中を再帰処理するかしないか。
フォルダの中身すべてを圧縮(アーカイブ)したいときに有効にして使用します。
既存のZipアーカイブファイルにファイル構造の更新(上書き)するかしないかを選択します。
たとえば前回,
/memo.txt
というファイルをZip内に作成したとします。すると、
さらに、違う保存先(ディレクトリ)の場合は、追記されます。
/memo.txt
/todo.txt ← 新しく追加されたファイル
同じ名称のZipファイルが存在している時に、全く同じ名称で保存すると、Zipファイルは上書きされます。
内容は完全に上書きされます。
こちらの方に書き残してあります。
圧縮したいファイル
/storage/emulated/0/Code.java
Zip保存先のパス
/storage/emulate/0/Compressed/Code.zip
圧縮したいフォルダ
/storage/emulated/0/Pictures/
Zip保存先のパス
/storage/emulate/0/Compressed/Images.zip
フォルダの中身全てなので再帰処理を有効にする
Recursive
を有効に。
最近強化された便利な Zip compress ブロックですので、機会があれば触れてあげてください。
パスが正しく指定されていないと、Zipが作成されません。注意しましょう!
入力フィールドのUIの順番が、
となっているので順番を間違えないよう気を付けてください。