How to use 7z compression in Pascal Script
In version v2024.3.20.0 we added two new Pascal Script functions which allows you to use 7z compression.
- Function ps7zCompress(Source: String; Destination: String; Password: String; Options: TStringList): Boolean;
 - Function ps7zCompressEx(Source: String; SourceFiles: TStringList; Destination: String; Password: String; Options: TStringList): Boolean;
 
We added an example where we’ll be looking for a certain file called ‘trigger.txt’ within subfolders. If this trigger file is found we’ll compress the complete subfolder. The goal is to create a compressed backup of the complete subfolder content.
- As Source we used a Windows Folder:
 

- The content of subfolder ‘Sub’ looks like the following screenshot. It contains the ‘trigger.txt’ file which we’ll use to start the compressing mechanism.
 

- We added the following include filename filter, because we are searching for the ‘trigger.txt’ only. This file will determine which subfolder we need to compress.
 

- Enable ‘Include Subdirectories’ within the Dir Filter’ setup:
 

- We enable our ‘File Memory’ option because we only want to compress its subfolder once. If the trigger.txt is changed, then we’ll compress the subfolder again.
 

– Function is set to ‘Copy’ because we want to keep the source files.

- Now add our ‘Pascal Script’ as Destination:
- Please add the following script: link
 - Please adjust the following Const if needed:
- ctZipPassword
 - ctZipExt
 - ctOutputPath
 
 
 

- The new ps7zCompress function has quite some options available which you can adjust if needed:
- AddDirectory = False, True (default: True)
 - CompressionMethod = Copy, Deflate, Deflate64, BZip2, LZMA, LZMA2, PPMd (default: Deflate)
 - DuplicateCheck = None, Existing, All (default: Existing)
 - DuplicateAction = Overwrite, Error, Skip (default: Overwrite)
 - EncryptionMethod = None, AES128, AES192, AES256, ZipCrypto (default: ZipCrypto)
 - FileIncludeFilter = (default: *.*)
 - ScanSubDirectories = False, True (default: True)
 - Level = 0..9 (default: 7)
 - Threads = 1 .. 255 (default: 1)
 - Error = ‘Error Description if compression fails’
 
 

- RunTime Log Result:
 

- Output Result:
 

If you need any help with our new ‘7z compression in Pascal Script’ feature, please let us know.
Best Regards,
Limagito Team
#7z #pascalscript #managedfiletransfer #FileManagement #filetransfer





