ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
ZIP Create archive

ZIP Create archive 


 

ZIP Create archive ( fileOrFolder | zipStructure ; destinationFile {; options} ) -> 戻り値 
引数   説明
fileOrFolder | zipStructure   オブジェクト in 圧縮するファイル/フォルダーオブジェクト
destinationFile  オブジェクト in アーカイブの保存先ファイル
options  倍長整数 in fileOrFolder 引数が使用された場合のみ: 外側のフォルダーを除外してZIP圧縮を行う
戻り値  オブジェクト in ステータスオブジェクト

説明   

ZIP Create archive コマンドは、圧縮されたZIP アーカイブオブジェクトを作成し、その操作のステータスを返します。

第1引数としては、fileOrFolder あるいは zipStructure オブジェクトを渡すことができます。

  • fileOrFolder
    このシンタックスを使用する場合、引数として圧縮するFile あるいは Folder オブジェクトを渡すだけです。この場合、options 引数を使用することができます(以下参照)
  • zipStructure
    このシンタックスを使用する場合、引数としてZIP アーカイブオブジェクトを説明するオブジェクトを渡します(これを渡した場合、options 引数を渡しても無視されます)。以下のプロパティを利用してストラクチャーを定義することが可能です:

    プロパティ
      詳細
    compression  倍長整数
    定数
    ZIP Compression none
    ZIP Compression standard
    encryption  倍長整数 パスワードが設定されていた場合に使用する暗号化方法:
     
    定数
    ZIP Encryption AES128
    ZIP Encryption AES192
    ZIP Encryption AES256
    ZIP Encryption none
    password  テキスト 暗号化が必須の場合に使用するパスワード
    files  コレクション
    • File または Folder オブジェクトのコレクション
    • 以下のプロパティを持ったオブジェクトのコレクション:
      プロパティ 詳細
      source オブジェクト File または Folder
      destination テキスト (任意) - 相対ファイルパスを指定することでアーカイブのコンテンツの構成を変化させる
      option 数値 (任意) - ZIP Ignore invisible files または 0 を渡す(0を渡すと全ファイルを圧縮)
    callback  フォーミュラ $1 に圧縮の進捗(0 - 100) を受け取るコールバックフォーミュラ


destinationFile 引数には、作成するZIP アーカイブ(の名前、位置、など)を記述するFile オブジェクトを渡します。作成したZIP アーカイブをあらゆるソフトウェアで自動的に処理されるようにするためには、".zip" 拡張子を使用することが推奨されます。

 

任意のoptions 引数を使用すると、fileOrFolder 引数のコンテンツのみを圧縮する(つまり、外側のフォルダを除外する)ことができます。デフォルトでは、fileOrFolder 引数にFolder を渡した場合、ZIP Create archive はフォルダとその中身も圧縮するので、展開処理をしたときにはフォルダを再作成します。圧縮処理によってフォルダのコンテンツのみを圧縮したい場合、options 引数にZIP Without enclosing folder 定数を渡してください。

 

アーカイブが作成されると、ZIP Read archive を使用してアクセスすることができます(プロパティ参照)。

返されるステータスオブジェクトには以下のプロパティが格納されています:

 

プロパティ 詳細
statusText テキスト エラーメッセージ(あれば):
  • ZIP アーカイブを開けません
  • ZIP アーカイブを作成できません
  • 暗号化にはパスワードが必要です
status 倍長整数 ステータスコード
success ブール アーカイブが正常に作成された場合にはTrue、それ以外の場合にはfalse

File を圧縮したい場合を考えます:

 C_OBJECT($file;$destination;$status)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/file.zip")
 $file:=Folder(fk desktop folder).file("MyDocs/text.txt")
 
 $status:=ZIP Create archive($file;$destination)

Folder を圧縮するが、フォルダー自身は圧縮しない場合を考えます:

 C_OBJECT($folder;$destination;$status)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/Images.zip")
 $folder:=Folder(fk desktop folder).folder("MyDocs/Images")
 
 $status:=ZIP Create archive($folder;$destination;ZIP Without enclosing folder)

パスワードと進捗バーを持つZIP アーカイブを圧縮したい場合を考えます:

 C_OBJECT($zip;$status;$destination)
 C_LONGINT(progID)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/Archive.zip")
 
 $zip:=New object
 $zip.files:=Folder(fk desktop folder).folder("MyDocs/Resources").folders()
 $zip.password:="password"
 $zip.callback:=Formula(myFormulaCompressingMethod($1))
 
 progID:=Progress New //we use the 4D Progress component
 
 $status:=ZIP Create archive($zip;$destination)
 
 Progress QUIT(progID)

myFormulaCompressingMethod の中身:

 C_LONGINT($1)
 Progress SET PROGRESS(progID;Num($1/100))

zipStructure オブジェクトに、圧縮したいフォルダとファイルを格納したコレクションを渡す場合を考えます:

 C_OBJECT($zip;$destination;$err)
 $zip:=New object
 $zip.files:=New collection
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Tests/text.txt")))
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Tests/text2.txt")))
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Images/image.png")))
 
 $destination:=Folder(fk desktop folder).file("file.zip")
 $err:=ZIP Create archive($zip;$destination)



参照 

ZIP Read archive
ZIPアーカイブについて

 
プロパティ 

プロダクト: 4D
テーマ: ファイルとフォルダ
番号: 1640

This command can be run in preemptive processes

 
ページの目次 
 
履歴 

初出: 4D v18

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)