ArchiveUtils
Utility methods for archive handling. For example, creating a ZIP or JAR.
Methods
Section titled “Methods”createZip
Section titled “createZip”Description:
| Method | Return values | Description |
|---|---|---|
| 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)
Section titled “createZip (directory)”Description:
| Method | Return values | Description |
|---|---|---|
| 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
Section titled “deleteFilesFromZipByExtension”Description:
| Method | Return values | Description |
|---|---|---|
| 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
Section titled “createJar”Description:
| Method | Return values | Description |
|---|---|---|
| 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(); } }}