Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

Archive.CompressContainer

Compresses one container into a new archive.

Component Version macOS Windows Linux Server iOS SDK
Archive 11.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "Archive.CompressContainer"; Format; Filter; Destination; Container { ; Options; Password } )   More

Parameters

Parameter Description Example Flags
Format The format to use.
Formats: ar, arbsd, argnu, arsvr4, bsdtar, cd9660, cpio, gnutar, iso, iso9660, mtree, mtree-classic, newc, odc, oldtar, pax, paxr, posix, raw, rpax, shar, shardump, ustar, v7tar, v7, warc, xar, zip.
"zip"
Filter The filter to use.
For zip format can be store or deflate.
Filters: b64encode, bzip2, compress, grzip, gzip, lrzip, lz4, lzip, lzma, lzop, uuencode, xz, zstd.

Not all filters can be combined with all formats.
"deflate"
Destination The native file path to the destination archive.
Or file name for container.
"C:\test.zip"
Container The container to compress.
We take the file name from container.
Options The options to pass to writer.
This is a comma-separated list of options. Option names can be prefixed with module name.

Sample options:
compression-level=9
zip:encryption=zipcrypt
zip:encryption=aes128
zip:encryption=aes256
zip64
gzip:compression-level=9
hdrcharset=UTF-8
"zip:encryption=zipcrypt" Optional
Password The passphrase to use for password protection. "secret" Optional

Result

Returns OK, container or error.

Description

Compresses one container into a new archive.
Supports various compression algorithms and encryption.

Examples

Compress a container:

Set Field [ MyFile::CompressedFile ; MBS( "Archive.CompressContainer"; "zip"; "deflate"; ""; MyFile::SomeContainer; "hdrcharset=UTF-8" ) ]

Compress a container to a zip file:

Set Variable [ $r ; Value: MBS( "Archive.CompressContainer"; "zip"; "deflate"; "/Users/cs/Desktop/Test.zip"; Anlagen::SomeContainer; "hdrcharset=UTF-8" ) ]

Compress to gz:

Set Variable [ $r ; Value: MBS( "Archive.CompressContainer"; "zip"; "deflate"; "/Users/cs/Desktop/Anlagen.zip"; Anlagen::SomeContainer; "gzip:compression-level=9" ) ]

Compress to gzip:

Set Variable [ $r ; Value: MBS( "Archive.CompressContainer"; "raw"; "gzip"; "/Users/cs/Desktop/test2.jpg.gz"; Contacts::Photo Container) ]

Compress PDF and add to email:

# get some PDF from a field
Set Variable [ $PDF ; Value: Reports::ReportContainer ]
# Compress it
Set Variable [ $CompressedPDF ; Value: MBS( "Archive.CompressContainer"; "zip"; "deflate"; "report.zip"; $pdf) ]
# now add to email
Set Variable [ $email ; Value: MBS( "SendMail.CreateEmail") ]
Set Variable [ $r ; Value: MBS( "SendMail.AddAttachmentContainer"; $Email; $CompressedPDF; "report.zip"; "application/zip" ) ]
Set Variable [ $r ; Value: MBS( "SendMail.SetPlainText"; $email; "Dear " & Contacts::FullName & ¶ & ¶ & "Attached you find the report from " & Get(CurrentDate ) & ¶ & ¶ & "Greetings" & ¶ & "Your FileMaker Server") ]

See also

Release notes

Blog Entries

This function checks for a license.

Created 22nd February 2021, last changed 4th July 2024


Archive.Compress - Archive.CompressText