Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
Compresses files to an archive.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
Archive | 9.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
Format | The format to use. Formats: 7zip, 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 destinaton archive. Or file name for container. |
"C:\test.zip" | |
BasePath | The bath path to the folder where to look for files. | "C:\test" | |
List | the list of files and folders to add to archive. | "test.txt" | |
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 |
Returns OK, container or error.
Compression examples:
# list of files in the folder to archive
Set Variable [ $list ; Value: "minitar.c¶simplebar.rbp¶test/other.txt" ]
# write zip file with password
Set Variable [ $r ; Value: MBS( "Archive.Compress"; "zip"; "deflate"; "/Users/cs/Desktop/minitar.zip"; "/Users/cs/Desktop/"; $list; "zip:encryption=zipcrypt"; "secret password" ) ]
# Write bzip2 compress tar file:
Set Variable [ $r ; Value: MBS( "Archive.Compress"; "ustar"; "bzip2"; "/Users/cs/Desktop/minitar.tar"; "/Users/cs/Desktop/") ]
# and write zip with aes encryption to container file:
Set Variable [ $r ; Value: MBS( "Archive.Compress"; "zip"; "deflate"; "minitar.zip"; "/Users/cs/Desktop/"; $list; "zip:encryption=aes128"; "secret password" ) ]
Set Field [ Archive Read::Container ; $r ]
Compress with UTF-8 file names:
MBS( "Archive.Compress"; "zip"; "deflate"; "C:\Users\Christian\Desktop\test.zip"; "C:\Users\Christian\Desktop"; "Bücher"; "hdrcharset=UTF-8" )
Compress content of logs folder on server:
# the path to logs folder
Set Variable [ $folder ; Value: "/opt/FileMaker/FileMaker Server/Logs" ]
# query list of files
Set Variable [ $list ; Value: MBS( "Files.List"; $folder) ]
# where to store the zip file:
Set Variable [ $ZipPath ; Value: MBS( "Path.AddPathComponent"; "/tmp"; "test.zip") ]
# and now zip these files:
Set Variable [ $archive ; Value: MBS( "Archive.Compress"; "zip"; "deflate"; $ZipPath; $folder; $list; "compression-level=9¶hdrcharset=UTF-8") ]
Compress a file in a let statement:
Let([
filename = "test.jpg";
SourcePath = MBS("Folders.UserDesktop");
DestPath = MBS("Path.AddPathComponent"; MBS("Folders.UserTemporary"); "test.zip");
r = MBS( "Archive.Compress"; "zip"; "deflate"; DestPath; SourcePath; filename; "zip:encryption=zipcrypt¶hdrcharset=UTF-8"; "12345" )
];r)
Compress with hashed password:
Let([
filename = "test.jpg";
password = MBS( "Hash.SHA256"; "testing" ) ;
SourcePath = MBS("Folders.UserDesktop");
DestPath = MBS("Path.AddPathComponent"; MBS("Folders.UserTemporary"); "test.zip");
r = MBS( "Archive.Compress"; "zip"; "deflate"; DestPath; SourcePath; filename; "zip:encryption=zipcrypt¶hdrcharset=UTF-8"; password)
];r)
This function checks for a license.
Created 17th December 2018, last changed 13th December 2023