メソッドの概要

返却値の型 メソッド名
File unzip (Object arg) static
ZIPファイルを解凍します。
Object zip (Object arg) static
指定されたファイルやディレクトリをZIP形式で圧縮します。

メソッドの詳細

File unzip (Object arg) static
ZIPファイルを解凍します。
引数オブジェクトは以下の形式です。

【注意】
圧縮ファイル内のファイル名は「UTF-8」で扱われます。
ディレクトリ名やファイル名に日本語などのマルチバイト文字が含まれている場合、解凍に失敗または文字化け等が発生するケースがあるため、動作保証外となります。
例えば、Windowsなどの「UTF-8」に対応していないOSやアーカイバでファイルを扱う場合、文字化けが発生します。
プロパティ 説明 必須
src File 解凍するZIPファイルのパスを示すFileオブジェクトを指定します。 Yes。3つのうちどちらか1つ。
PublicStorage 解凍するZIPファイルのパスを示すPublicStorageオブジェクトを指定します。
String(バイナリ) 解凍するZIPファイルの内容をバイナリ形式の文字列で指定します。
バイナリ形式の文字列とは、File#load()やRequestParameter#getValueAsStream()の返却値と同じ形式です。
dest File ZIPファイルの解凍先のパスを示すFileオブジェクトを指定します。
解凍先のパスにファイルやディレクトリが既に存在する場合、それらを削除してから解凍を行います。
Yes。2つのうちどちらか1つ。
PublicStorage ZIPファイルの解凍先のパスを示すPublicStorageオブジェクトを指定します。
解凍先のパスにファイルやディレクトリが既に存在する場合、それらを削除してから解凍を行います。

サンプルコード

以下のサンプルコードでは、
src/foo.zip」ファイルを、「dest/bar/」ディレクトリに解凍します。
変数 result には「dest/bar/」ディレクトリを示す新しいFileオブジェクトが格納されます。
 var result = Archiver.unzip(
                  {
                      src  : new File("src/foo.zip"),
                      dest : new File("dest/bar/")
                  }
              );
 

パラメータ
arg : Object
引数オブジェクト
返却値
File
File 解凍先のパスを示すFileオブジェクト、または、PublicStorageオブジェクト。
ZIP形式ではないファイルを解凍しようとした場合は undefined が返却されます。
Object zip (Object arg) static
指定されたファイルやディレクトリをZIP形式で圧縮します。

引数オブジェクトは以下の形式です。

【注意】
圧縮ファイル内のファイル名は「UTF-8」で扱われます。
ディレクトリ名やファイル名に日本語などのマルチバイト文字が含まれている場合、解凍に失敗または文字化け等が発生するケースがあるため、動作保証外となります。
例えば、Windowsなどの「UTF-8」に対応していないOSやアーカイバでファイルを扱う場合、文字化けが発生します。
プロパティ 説明 必須
src File 圧縮するファイル、または、ディレクトリのパスを示すFileオブジェクトを指定します。 Yes。5つのうちどちらか1つ。
PublicStorage 圧縮するファイル、または、ディレクトリのパスを示すPublicStorageオブジェクトを指定します。
String(バイナリ) 圧縮するファイルの内容をバイナリ形式の文字列で指定します。
バイナリ形式の文字列とは、File#load()やRequestParameter#getValueAsStream()の返却値と同じ形式です。
Array
(配列要素の型 が File)
圧縮するファイル、または、ディレクトリのパスを示すFileオブジェクトを要素とする配列を指定します。
(配列要素が、Fileで統一されていない場合の動作は未定義です)
Array
(配列要素の型 が PublicStorage)
圧縮するファイル、または、ディレクトリのパスを示すPublicStorageオブジェクトを要素とする配列を指定します。
(配列要素が、PublicStorageで統一されていない場合の動作は未定義です)
srcFileName String srcプロパティが String(バイナリ) 形式で指定された際の、圧縮後ファイル名を指定します。
なお、srcプロパティが String(バイナリ) 形式で指定されなかった場合、このプロパティは無視されます。
srcプロパティが String(バイナリ) 形式で指定された場合は必須。
dest File ZIPファイルの出力先パスを示すFileオブジェクトを指定します。
出力先のパスにファイルやディレクトリが既に存在する場合、それらを削除してから圧縮を行います。
No。
このプロパティが未指定の場合、作成されたZIPファイルの内容はファイルに出力されません。
作成されたZIPファイルの内容は、String(バイナリ)として返却されます。
PublicStorage ZIPファイルの出力先パスを示すPublicStorageオブジェクトを指定します。
出力先のパスにファイルやディレクトリが既に存在する場合、それらを削除してから圧縮を行います。
filter Function 圧縮するファイルのフィルタリングを行うための関数を指定します。

Archiverオブジェクトは、ディレクトリの圧縮処理を行う際、
そのディレクトリ配下に含まれるファイルやディレクトリを圧縮するか否かを判定するために、この関数を実行します。
この関数の引数には、圧縮処理を行おうとしているファイルやディレクトリを示すFileオブジェクトが渡されます。

この関数がfalseを返却した場合、該当ファイルは圧縮対象から外れます
上記以外の場合、該当ファイルは圧縮対象となります。

このプロパティが未指定の場合、または、null、undefinedが指定された場合は、すべてのファイルが圧縮対象となります。
このプロパティに指定された関数は、srcプロパティに「Fileオブジェクト」、または、「Array(配列要素の型 が File)」が指定された時だけ有効となります。
No。

サンプルコード

以下のサンプルコードでは、
src/foo/」ディレクトリ配下の、ファイル名に「.txt」が含まれるファイルを、
dest/bar.zip」ファイルとしてZIP圧縮します。
変数 result には「dest/bar.zip」を示す新しいFileオブジェクトが格納されます。
 var result = Archiver.zip(
                  {
                      src    : new File("src/foo/"),
                      dest   : new File("dest/bar.zip"),
                      filter : function(target){
                          if(target.isDirectory() || target.path().indexOf(".txt") != -1){
                              return true;
                          }
                          else{
                              return false;
                          }
                      }
                  }
              );
 

パラメータ
arg : Object
引数オブジェクト
返却値
Object
Object 引数オブジェクトのdestプロパティにFileオブジェクトを指定した場合は、ZIPファイルの出力先パスを示すFileオブジェクトが返却されます。
引数オブジェクトのdestプロパティにPublicStorageオブジェクトを指定した場合は、ZIPファイルの出力先パスを示すPublicStorageオブジェクトが返却されます。
上記以外の場合は、作成されたZIPファイルの内容が、String(バイナリ)として返却されます。