Unzip Files From LotusScript

LotusScript does not have a native class for uncompressing files to .zip format.

If you are running Notes or Domino R6 (or newer), by using the ability of LotusScript to make calls to functionality that is available in the Java language via LS2J — which is documented in Designer Help.

 Sub Initialize  Dim js As JAVASESSION  Dim zipClass As JAVACLASS  Dim zipFileObject As JavaObject  Dim varFileToZip As String, varOutFilePath  As String, returnCode As String    Set js = New JAVASESSION  Set zipClass = js.GetClass("ZipFile")  Set zipFileObject = zipClass.CreateObject  varFileToZip = "c:tempdocument.doc"  varOutFilePath = "c:tempthezipfile.zip"    returnCode = zipFileObject.zipMyFile (varFileToZip, varOutFilePath)  'Calling the zip function    If Not returnCode = "OK" Then   Print "An Error occurred"  Else   Print "Zip went OK"  End If End Sub 

In the Options of the agent I have the following:

 Uselsx "*javacon" 'Which lets you use  Java from LotusScript Use "ZipFile" 'A Java library that holds  a function to do zipping 

Below is the Java Library that makes it possible to zip a file. You create a Java Library in the Designer in Shared code > Script Libraries, click New Java Library, remove the few lines of code that you get as a help for getting started, and paste the code below. Save and call the library “ZipFile.”

 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;  public class ZipFile {  public String zipMyFile(String fileToZip,  String zipFilePath) {   String result = "";         byte[] buffer = new byte[18024];         // Specify zip file name       String zipFileName = zipFilePath;         try {            ZipOutputStream out =           new ZipOutputStream (new FileOutputStream(zipFileName));           // Set the compression ratio         out.setLevel (Deflater.BEST_COMPRESSION);             System.out.println(fileToZip);           // Associate a file input stream  for the current file           FileInputStream in =  new FileInputStream(fileToZip);             // Add ZIP entry to output stream.           out.putNextEntry (new ZipEntry(fileToZip));             // Transfer bytes from  the current file to the ZIP file           //out.write(buffer, 0, in.read(buffer));             int len;          while ((len = in.read(buffer)) > 0)           {          out.write(buffer, 0, len);         }             // Close the current entry           out.closeEntry();             // Close the current file input stream           in.close();           // Close the ZipOutPutStream         out.close();       }        catch (IllegalArgumentException iae) {         iae.printStackTrace();    return "ERROR_ ILLEGALARGUMENTSEXCEPTION";       }       catch (FileNotFoundException fnfe) {          fnfe.printStackTrace();     return "ERROR_FILENOTFOUND";       }       catch (IOException ioe)       {       ioe.printStackTrace();       return "ERROR_IOEXCEPTION";       }     return "OK";      } } 

Comments are closed.