ArchiveUtils

Utility methods for archive handling. For example, creating a ZIP or JAR. 

Methods

createZip

Description:

MethodReturn valuesDescription

createZip(File path, OutputStream os)

void

Create a ZIP archive from a file.

path: The file to compress.

os: The output stream for the file.

Example:

package com.openkm;

import java.io.ByteArrayOutputStream;
import java.io.File;

import com.openkm.util.ArchiveUtils;
import com.openkm.util.ContextWrapper;

public class Test {

    public static void main(String[] args) {
        try {
            ArchiveUtils archiveUtils = ContextWrapper.getContext().getBean(ArchiveUtils.class);
            File file = new File("/home/openkm/test.pdf");
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            archiveUtils.createZip(file, baos);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

createZip (directory)

Description:

MethodReturn valuesDescription

createZip(File path, String root, OutputStream os)

void

Recursively creates a ZIP archive from a directory.

path: The directory to compress.

root: The root entry name inside the ZIP archive.

os: The output stream for the archive.

Example:

package com.openkm;

import java.io.File;
import java.io.FileOutputStream;

import com.openkm.util.ArchiveUtils;
import com.openkm.util.ContextWrapper;
import com.openkm.util.FileUtils;

public class Test {

    public static void main(String[] args) {
        try {
            ArchiveUtils archiveUtils = ContextWrapper.getContext().getBean(ArchiveUtils.class);
            FileUtils fileUtils = ContextWrapper.getContext().getBean(FileUtils.class);

            File tmp = fileUtils.createTempDir();
            // ... populate tmp directory with files ...
            FileOutputStream os = new FileOutputStream(new File("/home/openkm/output.zip"));
            archiveUtils.createZip(tmp, "myexport", os);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

deleteFilesFromZipByExtension

Description:

MethodReturn valuesDescription

deleteFilesFromZipByExtension(String zipPath, String fileExtension)

void

Deletes all files with a given extension from an existing ZIP archive.

zipPath: The file system path to the ZIP archive.

fileExtension: The file extension to match (e.g. .xml). Comparison is case-insensitive.

Example:

package com.openkm;

import com.openkm.util.ArchiveUtils;
import com.openkm.util.ContextWrapper;

public class Test {

    public static void main(String[] args) {
        try {
            ArchiveUtils archiveUtils = ContextWrapper.getContext().getBean(ArchiveUtils.class);
            archiveUtils.deleteFilesFromZipByExtension("/home/openkm/output.zip", ".xml");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

createJar

Description:

MethodReturn valuesDescription

createJar(File path, String root, OutputStream os)

void

Recursively create a JAR archive from a directory.

path: The directory to compress.

root: The root entry name inside the JAR archive.

os: The output stream for the archive.

Example:

package com.openkm;

import java.io.File;
import java.io.FileOutputStream;
import java.io.StringWriter;

import com.openkm.util.ArchiveUtils;
import com.openkm.util.ContextWrapper;
import com.openkm.util.FileUtils;
import com.openkm.util.PathUtils;
import com.openkm.util.impexp.RepositoryExporter;
import com.openkm.util.impexp.TextInfoDecorator;

public class Test {

    public static void main(String[] args) {
        try {
            ArchiveUtils archiveUtils = ContextWrapper.getContext().getBean(ArchiveUtils.class);
            PathUtils pathUtils = ContextWrapper.getContext().getBean(PathUtils.class);
            FileUtils fileUtils = ContextWrapper.getContext().getBean(FileUtils.class);
            RepositoryExporter repositoryExporter = ContextWrapper.getContext().getBean(RepositoryExporter.class);

            StringWriter out = new StringWriter();

            File dirFile = new File("/home/openkm");
            final File tmpFile = File.createTempFile("test", ".jar", dirFile);
            FileOutputStream os = new FileOutputStream(tmpFile);

            File tmp = fileUtils.createTempDir();
            repositoryExporter.exportFolder(null, "/okm:root/jar", tmp, false, out, new TextInfoDecorator("/okm:root/jar"));

            // Jar files
            archiveUtils.createJar(tmp, pathUtils.getName("/home/openkm"), os);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}