メインコンテンツまでスキップ
バージョン: 20 R7 BETA

ZIP Read archive

ZIP Read archive ( zipFile : 4D.File { ; password : Text }) : 4D.ZipArchive

引数説明
zipFile4D.FileZIPアーカイブファイル
passwordテキストZIPアーカイブのパスワード (必要であれば)
戻り値4D.ZipArchiveアーカイブオブジェクト
履歴
リリース内容
18追加

説明

ZIP Read archive コマンドは、zipFile のコンテンツを取得し、4D.ZipArchive オブジェクト形式で返します。

このコマンドは ZIPアーカイブを展開することはしません。その中身に関する情報を提供するのみです。 To extract the contents of an archive, you need to use methods such as file.copyTo() or folder.copyTo().

zipFile 引数として、圧縮された ZIPアーカイブを参照している 4D.File オブジェクトを渡します。 ターゲットのアーカイブファイルは ZIP Read archive が実行を終えるまで (全コンテンツ/参照が取得/解放されるまで) は開いた状態となり、その後自動的に閉じられます。

zipFile 引数で指定した ZIPファイルがパスワードで保護されていた場合、任意の password 引数を渡してパスワードを提供する必要があります。 パスワードが必要にも関わらず、コンテンツ読み出し時にパスワードが提示されなかった場合、エラーが生成されます。

アーカイブオブジェクト

The returned 4D.ZipArchive object contains a single root property whose value is a 4D.ZipFolder object. このフォルダーは ZIPアーカイブの全コンテンツを表します。

例題

ZIPFile オブジェクトを取得し、その中身を確認します:

 var $archive : 4D.ZipArchive
var $path : 4D.File

$path:=Folder(fk desktop folder).file("MyDocs/Archive.zip")
$archive:=ZIP Read archive($path)

アーカイブ内のファイルとフォルダーの一覧を取得します:

 $folders:=$archive.root.folders()
$files:=$archive.root.files()

ファイルのコンテンツを、root フォルダーから取り出すことなく読み出します:


If($files[$i].extension=".txt")
$txt:=$files[$i].getText()
Else
$blob:=$files[$i].getContent()
End if

root フォルダーから取り出します:

  // 特定のファイルを取得します
$folderResult:=$files[$i].copyTo(Folder(fk desktop folder).folder("MyDocs"))

// すべてのファイルを取得します
$folderResult:=$archive.root.copyTo(Folder(fk desktop folder).folder("MyDocs"))

参照

ZipArchive Class ZipFile Class ZipFolder Class ZIP Create archive