ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
ZIP Create archive
|
ZIP Create archive ( fileOrFolder | zipStructure ; destinationFile {; options} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
fileOrFolder | zipStructure | オブジェクト |
![]() |
圧縮するファイル/フォルダーオブジェクト | |||||
destinationFile | オブジェクト |
![]() |
アーカイブの保存先ファイル | |||||
options | 倍長整数 |
![]() |
fileOrFolder 引数が使用された場合のみ: 外側のフォルダーを除外してZIP圧縮を行う | |||||
戻り値 | オブジェクト |
![]() |
ステータスオブジェクト | |||||
ZIP Create archive コマンドは、圧縮されたZIP アーカイブオブジェクトを作成し、その操作のステータスを返します。
第1引数としては、fileOrFolder あるいは zipStructure オブジェクトを渡すことができます。
プロパティ | 型 | 詳細 | |||||
compression | 倍長整数 |
| |||||
encryption | 倍長整数 | パスワードが設定されていた場合に使用する暗号化方法:
| |||||
password | テキスト | 暗号化が必須の場合に使用するパスワード | |||||
files | コレクション | ||||||
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 | テキスト | エラーメッセージ(あれば):
|
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)
プロダクト: 4D
テーマ: ファイルとフォルダ
番号:
1640
初出: 4D v18
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)