Ir al contenido

ArchiveUtils

Métodos de utilidad para el manejo de archivos comprimidos. Por ejemplo, crear un ZIP o un JAR.

Descripción:

Método Valores de retorno Descripción
createZip(File path, OutputStream os) void Crea un archivo ZIP a partir de un fichero.
  • path: El fichero a comprimir.
  • os: El stream de salida para el fichero.

Ejemplo:

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();
}
}
}

Descripción:

Método Valores de retorno Descripción
createZip(File path, String root, OutputStream os) void Crea recursivamente un archivo ZIP a partir de un directorio.
  • path: El directorio a comprimir.
  • root: El nombre de la entrada raíz dentro del archivo ZIP.
  • os: El stream de salida para el archivo.

Ejemplo:

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();
}
}
}

Descripción:

Método Valores de retorno Descripción
deleteFilesFromZipByExtension(String zipPath, String fileExtension) void Elimina todos los ficheros con una extensión dada de un archivo ZIP existente.
  • zipPath: La ruta del sistema de ficheros al archivo ZIP.
  • fileExtension: La extensión de fichero a buscar (por ejemplo, .xml). La comparación no distingue mayúsculas de minúsculas.

Ejemplo:

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();
}
}
}

Descripción:

Método Valores de retorno Descripción
createJar(File path, String root, OutputStream os) void Crea recursivamente un archivo JAR a partir de un directorio.
  • path: El directorio a comprimir.
  • root: El nombre de la entrada raíz dentro del archivo JAR.
  • os: El stream de salida para el archivo.

Ejemplo:

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();
}
}
}