Si mi aplicación desea comprimir los archivos resultantes (grupo de archivos) usando java de una manera dinámica, ¿cuáles son las opciones disponibles en Java? Cuando busqué, tengo el paquete java.util.zip para usar, pero ¿hay alguna otra manera en que pueda usarlo para implementarlo?Comprimir y descomprimir las carpetas y archivos usando Java
6
A
Respuesta
0
Puede utilizar la biblioteca de manejo de archivos ZIP que viene con JDK También los tutoriales de this pueden ser útiles.
15
public class FolderZiper {
public static void main(String[] a) throws Exception {
zipFolder("c:\\a", "c:\\a.zip");
}
static public void zipFolder(String srcFolder, String destZipFile) throws Exception {
ZipOutputStream zip = null;
FileOutputStream fileWriter = null;
fileWriter = new FileOutputStream(destZipFile);
zip = new ZipOutputStream(fileWriter);
addFolderToZip("", srcFolder, zip);
zip.flush();
zip.close();
}
static private void addFileToZip(String path, String srcFile, ZipOutputStream zip)
throws Exception {
File folder = new File(srcFile);
if (folder.isDirectory()) {
addFolderToZip(path, srcFile, zip);
} else {
byte[] buf = new byte[1024];
int len;
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0) {
zip.write(buf, 0, len);
}
}
}
static private void addFolderToZip(String path, String srcFolder, ZipOutputStream zip)
throws Exception {
File folder = new File(srcFolder);
for (String fileName : folder.list()) {
if (path.equals("")) {
addFileToZip(folder.getName(), srcFolder + "/" + fileName, zip);
} else {
addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip);
}
}
}
}
3
Se sabe que la implementación original de Java tiene algunos errores relacionados con la codificación de archivos. Por ejemplo, no puede manejar adecuadamente nombres de archivo con diéresis.
TrueZIP es una alternativa que hemos utilizado en nuestro proyecto: https://truezip.dev.java.net/ Consulte la documentación en el sitio.
0
de Java tiene un java.util.zip.ZipInputStream y junto con esto se puede utilizar ZipEntry ... Algo así como
public static void unZipIt(String zipFile, String outputFolder){
File folder = new File(zipFile);
List<String> files = listFilesForFolder(folder);
System.out.println("Size " + files.size());
byte[] buffer = new byte[1024];
try{
Iterator<String> iter = files.iterator();
while(iter.hasNext()){
String file = iter.next();
System.out.println("file name " + file);
ZipInputStream zis = new ZipInputStream(new FileInputStream(file));
ZipEntry ze = zis.getNextEntry();
while(ze!=null){
String fileName = ze.getName();
File newFile = new File(outputFolder + File.separator + fileName);
System.out.println("file unzip : "+ newFile.getAbsoluteFile());
new File(newFile.getParent()).mkdirs();
FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
ze = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
System.out.println("Done");
}
}catch(IOException ex){
ex.printStackTrace();
}
}
Cuestiones relacionadas
- 1. Comprimir y descomprimir carpetas en C#
- 2. Comprimir y descomprimir archivo 7z en java
- 3. Cómo comprimir y descomprimir los archivos?
- 4. Comprimir archivos y carpetas en android
- 5. Comprimir y descomprimir un Stream con Compression.DeflateStream
- 6. Compresión/descompresión de carpetas y archivos
- 7. comprimir y descomprimir cadena con desinfla
- 8. Comprimir con Java Descomprimir con PHP
- 9. ¿Cómo puedo generar archivos y luego comprimir/comprimir con Heroku?
- 10. Python - Mover y sobrescribir archivos y carpetas
- 11. ¿Comprimir y descomprimir un archivo programmatically en iphone?
- 12. ¿Cómo puedo comprimir archivos en Java y no incluir archivos de las rutas
- 13. Descomprimir archivos tgz usando Ant
- 14. Cómo comprimir archivos usando JavaScript
- 15. Eliminar carpetas y contener archivos
- 16. ¿Cómo crear carpetas usando nombres de archivos y luego mover archivos a carpetas?
- 17. Enumeración de carpetas y archivos usando Google Drive SDK V2
- 18. Java: diferencia entre las carpetas dist y deploy
- 19. Copie todos los archivos y carpetas usando msbuild
- 20. ¿Cómo descomprimir archivos recursivamente en Java?
- 21. ¿Cómo descomprimir artefactos y filtrar recursos?
- 22. Xcode archivos y carpetas limpian estructura y organización
- 23. Listar todas las carpetas y archivos de Dropbox usando la API de Dropbox
- 24. Confirmar todas las carpetas y archivos en un directorio usando la línea de comandos
- 25. Crear archivos y carpetas de forma recursiva
- 26. Eliminación de archivos y carpetas bloqueados
- 27. Distinga entre carpetas y archivos en C++
- 28. JavaScript: Descomprimir/inflar/descomprimir/descomprimir cadenas
- 29. cómo comprimir una imagen PNG usando Java
- 30. NSIS - descargar y descomprimir archivos comprimidos de Internet
http://devharbor.blogspot.com/2009/01/create-zip -archive-in-java.html y google – ant
gracias por su código – gmhk