Por ejemplo, quiero comprimir un archivo almacenado en /Users/me/Desktop/image.jpg¿Cómo puedo comprimir archivos en Java y no incluir archivos de las rutas
Hice este método:
public static Boolean generateZipFile(ArrayList<String> sourcesFilenames, String destinationDir, String zipFilename){
// Create a buffer for reading the files
byte[] buf = new byte[1024];
try {
// VER SI HAY QUE CREAR EL ROOT PATH
boolean result = (new File(destinationDir)).mkdirs();
String zipFullFilename = destinationDir + "/" + zipFilename ;
System.out.println(result);
// Create the ZIP file
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFullFilename));
// Compress the files
for (String filename: sourcesFilenames) {
FileInputStream in = new FileInputStream(filename);
// Add ZIP entry to output stream.
out.putNextEntry(new ZipEntry(filename));
// Transfer bytes from the file to the ZIP file
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
// Complete the entry
out.closeEntry();
in.close();
} // Complete the ZIP file
out.close();
return true;
} catch (IOException e) {
return false;
}
}
Pero cuando extraigo el archivo, los archivos descomprimidos tienen la ruta completa.
No quiero la ruta completa de cada archivo en el zip, solo quiero el nombre del archivo.
¿Cómo puedo hacer esto?
gracias !!!! funciona muy bien – Ignacio