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


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


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.
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.
Destination The native file path to the destination archive.
Or file name for container.
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:
"zip:encryption=zipcrypt" Optional
Password The passphrase to use for password protection. "secret" Optional


Returns OK, container or error.


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


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/"; Anlagen::SomeContainer; "hdrcharset=UTF-8" ) ]

Compress to gz:

Set Variable [ $r ; Value: MBS( "Archive.CompressContainer"; "zip"; "deflate"; "/Users/cs/Desktop/"; 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"; ""; $pdf) ]
# now add to email
Set Variable [ $email ; Value: MBS( "SendMail.CreateEmail") ]
Set Variable [ $r ; Value: MBS( "SendMail.AddAttachmentContainer"; $Email; $CompressedPDF; ""; "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