PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Use conditions
  • Compression level
  • Error codes
  • Adding a file that is already found in the archive
  • Subscript of files in the archive
  • Progress bar
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Adds all the files found in a directory and in its sub-directories into an archive and compresses them. This function can be used on the following types of archives: CAB, ZIP, WDZ, 7z, TAR and TGZ (TAR.GZ).
Versions 15 and later
Android This function is now available for the Android applications.
New in version 15
Android This function is now available for the Android applications.
Android This function is now available for the Android applications.
Versions 17 and later
iPhone/iPad This function is now available for the iPhone/iPad applications.
New in version 17
iPhone/iPad This function is now available for the iPhone/iPad applications.
iPhone/iPad This function is now available for the iPhone/iPad applications.
Versions 18 and later
Android Widget This function is now available in Android Widget mode.
WINDEVWEBDEV - Server codeWindows This function now supports the 7z format.
New in version 18
Android Widget This function is now available in Android Widget mode.
WINDEVWEBDEV - Server codeWindows This function now supports the 7z format.
Android Widget This function is now available in Android Widget mode.
WINDEVWEBDEV - Server codeWindows This function now supports the 7z format.
Versions 19 and later
Universal Windows 10 App This function is now available in Windows Store apps mode.
New in version 19
Universal Windows 10 App This function is now available in Windows Store apps mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
WINDEVWEBDEV - Server codeWindowsLinuxiPhone/iPadUniversal Windows 10 App This function now supports the TAR and TGZ (TAR.GZ) formats.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
WINDEVWEBDEV - Server codeWindowsLinuxiPhone/iPadUniversal Windows 10 App This function now supports the TAR and TGZ (TAR.GZ) formats.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
WINDEVWEBDEV - Server codeWindowsLinuxiPhone/iPadUniversal Windows 10 App This function now supports the TAR and TGZ (TAR.GZ) formats.
WINDEVWEBDEV - Server codeJavaAjaxUser code (UMC)
// Create the archive
ResCreate = zipCreate("MyArchive", "C:\Temp\Archive.zip")
IF ResCreate = 0 THEN
// Adds all the directory files
ResAddDir = zipAddDirectory("MyArchive", ...
"C:\MyDirectory\MyFiles", True, zipDrive)
END
// Display an error message if the addition was not performed
IF ResAddDir <> 0 THEN Error(zipMsgError(ResAddDir))
Windows Mobile
// Create the archive
ResCreate = zipCreate("MyArchive", "\Temp\Archive.zip")
IF ResCreate = 0 THEN
// Adds all the directory files
ResAddDir = zipAddDirectory("MyArchive", ...
"MyDirectory\MyFiles", True)
END
// Display an error message if the addition was not performed
IF ResAddDir <> 0 THEN Error(zipMsgError(ResAddDir))
Syntax

Adding the directory files while specifying the path to store Hide the details

<Result> = zipAddDirectory(<Archive> , <Directory Path> [, <Sub-directory> [, <Path Section to Store> [, <WLanguage Procedure> [, <Management of Progress Bar>]]]])
<Result>: Integer
  • 0 if the addition was performed,
  • An error code (value greater than 0) otherwise. See the Notes for more details.
<Archive>: Character string (with quotes) or zipArchive variable
Name of the archive into which the content of the directory must be added.
This name can correspond to:
<Directory Path>: Character string (with quotes)
Path of directory that will be added into the archive (up to 260 characters). This path can be a full path or a path relative to the current directory. The function returns an error if this parameter corresponds to an empty string ("").
The size of the files found in this directory must be less than 4 GB. Otherwise, an error occurs.
Windows Mobile The access path to the file is a full path. Indeed, the notion of current directory does not exist on Pocket PC.
Universal Windows 10 App The access path to the directory is a full path or a path relative to the working directory of application (returned by fDataDir). Only the files found in the working directory can be added to the archive.
<Sub-directory>: Optional boolean
  • True (default value) if the sub-directories must be added,
  • False if the sub-directories must not be added.
<Path Section to Store>: Optional constant
Path section to store for each file in the archive:
zipDriveStore the full and absolute path of file (name of disk, name of directories, file name and file extension). For example: C:\Directory\Files\FileName.pdf
For the WDZ format: The full path of file (including the drive letter) is stored.
For the ZIP format: The drive letter is not stored.
For the 7z format: This constant and zipDirectory will have the same effect.
LinuxiPhone/iPadWindows Mobile This constant is not available as there is no root for the drive.

Java This constant and zipDirectory will have the same effect
zipRelativeThe path passed in parameter is considered as being the root of the archive. The stored path for all files and sub-directories is given in relation to this root.
Therefore, if the added directory is: "C:\Temp\Doc" containing the following elements:
  • the Test1.doc file,
  • the Test2.doc file is found in the SYS sub-directory,
the stored information will be relative to the "C:\Temp\Doc" directory:
  • Test1.doc,
  • SYS\Test2.Doc.
zipDirectory
(Default value)
Stores the different directories found in the file path as well as the file name and extension. For example: \Directory\Files\FileName.pdf
Archive in .CAB format: None of these constants is taken into account. Indeed, the .CAB format cannot be used to store the paths inside the archive.
Universal Windows 10 App This parameter is not available: only the name of the file and its extension are stored.
<WLanguage Procedure>: Optional character string
Name of WLanguage procedure that will be called before adding each file. This procedure allows you to archive a tree structure while omitting one or more files. This procedure must have the following format:
PROCEDURE ProcedureName (<File Name>)
where <File Name> is a character string containing the path of file that will be processed by zipAddDirectory.
If the procedure returns True, the file must be included in the archive.
If the procedure returns False, the file must not be included in the archive.
WEBDEV - Server code This procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not allowed.
<Management of Progress Bar>: Character string (with or without quotes)
Versions 21 and later
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed at the end of the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
New in version 21
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed at the end of the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed at the end of the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
Universal Windows 10 App Not available

Adding the files found in a directory while specifying the path to ignore Hide the details

<Result> = zipAddDirectory(<Archive> , <Directory Path> [, <Sub-directory> [, <Section of Path to Ignore> [, <WLanguage Procedure> [, <Management of Progress Bar>]]]])
<Result>: Integer
  • 0 if the addition was performed,
  • An error code (value greater than 0) otherwise. See the Notes for more details.
<Archive>: Character string (with quotes) or zipArchive variable
Name of the archive into which the content of the directory must be added.
This name can correspond to:
<Directory Path>: Character string (with quotes)
Path of directory that will be added into the archive (up to 260 characters). This path can be a full path or a path relative to the current directory.
The function returns an error if this parameter corresponds to an empty string ("").
The size of the files found in this directory must be less than 4 GB. Otherwise, an error occurs
Windows Mobile The access path to the file is a full path. Indeed, the notion of current directory does not exist on Pocket PC.
<Sub-directory>: Optional boolean
  • True (default value) if the sub-directories must be added,
  • False if the sub-directories must not be added.
<Section of Path to Ignore>: Optional character string (with quotes)
Indicates the section of file path that must not be stored in the archive. For example, if the full path of the directory added into the archive is: "C:\My Documents\Work\" and if <Section of Path to Ignore> is set to "C:\My Documents\", on the "Work\" section will be stored.
<WLanguage Procedure>: Optional character string
Name of WLanguage procedure that will be called before adding each file. This procedure allows you to archive a tree structure while omitting one or more files. This procedure must have the following format:
PROCEDURE ProcedureName (<File Name>)
where <File Name> is a character string containing the path of file that will be processed by zipAddDirectory. If the procedure returns True, the file is included in the archive.
If the procedure returns False, the file is not included in the archive.
WEBDEV - Server code This procedure must be a server procedure.
Java This parameter is not allowed.
<Management of Progress Bar>: Character string (with or without quotes)
Versions 21 and later
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed before and after the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
New in version 21
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed before and after the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
Mode for managing the progress bar. This parameter can correspond to:
  • WINDEViPhone/iPadWindows MobileUniversal Windows 10 App the name of a Progress Bar control found in a window. The progress bar will display the progress regarding the file addition and compression.
  • the name of a WLanguage procedure. This procedure has the following format:
    <Procedure Name> (<Current File>, <Global Percentage of Progress>,
    <Percentage of File Progress>)

    where:
    • <Current File> corresponds to the name of the file currently processed.
    • <Global Percentage of Progress> corresponds to the percentage of progress regarding the addition of files into the archive.
    • <Percentage of File Progress> corresponds to the percentage of progress regarding the addition of the current file into the archive.
If you are using an archive:
  • in TAR or TGZ (TAR.GZ) format, the progress bar is refreshed before and after the addition of each file.
  • in 7z format, only <Global Percentage of Progress> is specified. <Percentage of File Progress> will have the same value.
WEBDEV - Server code The procedure must be a server procedure.
AndroidAndroid Widget Java This parameter is not available.
Remarks

Use conditions

Adding files into an archive can be performed if:
  • The archive exists (an archive is created by zipCreate).
  • The archive is accessible in read/write.
  • The archive is a single-part archive.
  • The size of the file is less than 4 GB.
Caution:
  • Archives in CAB format: The files must be added immediately after the archive creation. This format cannot be used to add files into an existing archive.
  • Archives in RAR format: This function is not available.
  • Archives in 7z format: The archive is entirely compressed whenever zipAddDirectory is called.
The maximum number of files that can be included:
  • in a WDZ file: 232-1.
  • in a ZIP file: 65535.
  • in a CAB file: 65535.
Note: If the zipHeader64 constant is used when creating the archive (zipCreate), you will have the ability to create archives exceeding 4 GB.
LinuxAndroidAndroid Widget iPhone/iPadWindows MobileUniversal Windows 10 AppJava Only the archives in ZIP format are available.
Reminder:
  • LinuxiPhone/iPadUniversal Windows 10 App Only the archives in ZIP, TAR and TGZ (TAR.GZ) format are available.
  • AndroidAndroid Widget Windows MobileJava Only the archives in ZIP format are available.

Compression level

The files added into an archive in Zip format are compressed by default. The compression level of files added into an archive can be modified by zipCompressionLevel.

Error codes

The following error codes are returned:
  • 1: The path passed in parameter does not exist.
  • 2: Access denied: the user has no sufficient rights.
  • 3: The archive is corrupted.
  • 4: The path does not exist in the archive.
  • 5: Unable to write into the archive.
  • 7: The file is already found in the archive.
  • 8: An archive cannot be added to itself. For example, "MyArchive" cannot be added to "MyArchive".
The message corresponding to the error code is returned by zipMsgError.

Adding a file that is already found in the archive

An error occurs when adding a file that is already found in the archive. A file is identified by its stored path. Therefore, two files with the same name and with the same relative path cannot be added into an archive.

Subscript of files in the archive

When a file is added into an archive, a subscript is automatically assigned to the file. This subscript corresponds to the order in which the files are included in the archive. To select a file found in the archive, you can use:
  • The subscript of the element. (Note: the subscript of an element is returned by zipFindFile)
  • The stored path of element.
WINDEVReports and QueriesWindows MobileUser code (UMC)

Progress bar

In Windows, to view the progress of file addition and compression, an event must be branched on CompressGauge (1174). When this message is received, the _EVE.wParam variable contains the percentage of file already compressed.
Caution: This event is not supported if the call to zipAddDirectory is performed in a secondary thread.
Versions 21 and later
From version 21, <Management of Progress Bar> can also be used to manage the progress of file addition.
New in version 21
From version 21, <Management of Progress Bar> can also be used to manage the progress of file addition.
From version 21, <Management of Progress Bar> can also be used to manage the progress of file addition.
Components
WINDEVWEBDEV - Server codeReports and Queries wd230zip.dll
Windows Mobile wp230zip.dll
Java wd230java.jar
Linux wd230zip.so
Android wd230android.jar
Minimum required version
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment