ZIP (.zip)

予備知識

    • 登録MIMEタイプ:application/zip
    • 一般的なデータ圧縮・アーカイブ形式.
    • 保管スペースと転送時間を減らすために使われる.
    • バイナリ形式.
    • 複数のファイルを含むことができる.
    • 種々の圧縮法をサポートする.
    • 1989年にPhil Katzによって開発された.

ImportとExport

  • ZIPアーカイブからファイルをインポートするとき,各形式の特定のコンバータが使用される.
  • Import["file.zip"]{"fn1", "fn2",}という形の式を返し,"file.zip"の中のすべてのファイルの完全パス指定を与える.
  • Import["file.zip",elem]はZIPファイルから指定された要素をインポートする.
  • Import["file.zip","fn"]はアーカイブから"fn"を抽出し,それをインポートする.
  • Import["file.zip",{elem,suba,subb,}]は1.77要素をインポートする.
  • Import["file.zip",{{elem1,elem2,}}]は複数の要素をインポートする.
  • Import["file","ZIP"]またはImport["file",{"ZIP",elem,}]は任意のファイルをZIPアーカイブとしてインポートする.
  • Export["file.zip",expr,elem]expr が要素 elem を指定してるとしてZIPアーカイブを作成する.
  • Export["file.zip",{expr1,expr2,},{{elem1,elem2,}}]は各 expri が対応する elemi を指定しているとして扱う.
  • Export["file.zip","fn"->expr]"fn"のファイル拡張子からファイル形式を推測し,expr をファイルにエキスポートしてZIPアーカイブとして圧縮する.
  • Export["file.zip","fn1"->expr1,"fn2"->expr2,]は複数の式をZIPアーカイブとしてエキスポートする.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • ZIPアーカイブの個々のファイルの選択・指定には以下が使える:
  • "FileNames"ZIPアーカイブの内容を表すファイル名のリスト
    "filename"単一のファイル
    "filename","format" 指定の形式の単一のファイル
    "filename","format",elem特定のファイルの要素elem
  • Importはデフォルトで"FileNames"要素をZIP形式に使用する.
  • Import["file.zip","fn"]はファイル"fn"をインポートする.
  • ファイル名は相対的な,あるいは絶対的なディレクトリ指定と,StringMatchQでサポートされる省略された文字列パターンを含むことができる.
  • Import["file.zip","*"]はアーカイブ全体をインポートする.
  • Import["file.zip","dir/*.jpg"]はサブディレクトリdir から全JPEGファイルをインポートする.
  • Export["file.zip","file1.gif"->expr1,"file2.txt"->expr2]はGIFファイルとテキストファイルを含むZIPアーカイブを作成する.
  • Export["file",{expr1,expr2},{"ZIP",{{"file1","GIF"},{"file2","Text"}}}]も同じである.

オプション

  • 一般的なExportオプション:
  • CompressionLevelAutomatic0から1までの数で与えられるZIPの圧縮強度
  • 設定CompressionLevel->1は可能な範囲で強度の最も高い圧縮に相当し,結果のファイルサイズは可能な限り最も小さくなる.

例題

すべて開くすべて閉じる

  (1)

GIFファイルとテキストファイルを含むZIPアーカイブを作成する:

ZIPアーカイブをインポートすると,デフォルトではアーカイブ中のファイル名が与えられる:

デフォルト要素を使ってすべてのファイルをインポートする:

GIFファイルを抽出してインポートする:

すべてのテキストファイルを抽出してインポートする:

スコープ  (1)

ZIPアーカイブの要素:

ZIPアーカイブ内のファイルの一つについて利用できる要素を抽出する:

アーカイブ内のファイルの一つから要素をいくつかインポートする:

別々の形式の複数のファイルのデフォルト要素をインポートする:

Import要素  (1)

"FileNames"  (1)

ZIPアーカイブ中のすべてのファイルの名前を取得する:

これはデフォルトの要素である:

Exportオプション  (1)

CompressionLevel  (1)

エキスポートするテキストを取得する:

デフォルトでは最大圧縮量が使用される:

これはCompressionLevel1に等しい:

最小の圧縮量を指定する:

特性と関係  (2)

エキスポートするテキストを取得する:

ZIP,TARGZ,TARBZ2,TARZSTの圧縮を,圧縮していない場合のサイズと比較する:

ZIP,TARGZ,TARBZ2,TARZSTの圧縮速度を比較する:

圧縮される量は圧縮するデータに依存する.例えばJPEG画像はすでに圧縮されているため,ZIPでそれ以上圧縮することはできない: