Advertisement
joseleonweb

Untitled

Feb 26th, 2021
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.42 KB | None | 0 0
  1. package m3uf3projects.zip;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.util.zip.ZipEntry;
  9. import java.util.zip.ZipOutputStream;
  10.  
  11. public class Zip {
  12.  
  13.     public static void main(String[] args) {
  14.         // cadena que contiene la ruta donde están los archivos a comprimir
  15.         String directorioZip = "D:\\ZIP\\";
  16.         // ruta completa donde están los archivos a comprimir
  17.         File carpetaComprimir = new File(directorioZip);
  18.  
  19.         // valida si existe el directorio
  20.         if (carpetaComprimir.exists()) {
  21.             // lista los archivos que hay dentro del directorio
  22.             File[] ficheros = carpetaComprimir.listFiles();
  23.             System.out.println("Número de ficheros encontrados: " + ficheros.length);
  24.  
  25.             // ciclo para recorrer todos los archivos a comprimir
  26.             for (int i = 0; i < ficheros.length; i++) {
  27.                 System.out.println("Nombre del fichero: " + ficheros[i].getName());
  28.                 String extension="";
  29.                 for (int j = 0; j < ficheros[i].getName().length(); j++) {
  30.                     //obtiene la extensión del archivo
  31.                     if (ficheros[i].getName().charAt(j)=='.') {
  32.                         extension=ficheros[i].getName().substring(j, (int)ficheros[i].getName().length());
  33.                         //System.out.println(extension);
  34.                     }
  35.                 }
  36.                 try {
  37.                     // crea un buffer temporal para ir poniendo los archivos a comprimir
  38.                     ZipOutputStream zous = new ZipOutputStream(new FileOutputStream(directorioZip + ficheros[i].getName().replace(extension, ".zip")));
  39.                    
  40.                     //nombre con el que se va guardar el archivo dentro del zip
  41.                     ZipEntry entrada = new ZipEntry(ficheros[i].getName());
  42.                     zous.putNextEntry(entrada);
  43.                    
  44.                         //System.out.println("Nombre del Archivo: " + entrada.getName());
  45.                         System.out.println("Comprimiendo.....");
  46.                         //obtiene el archivo para irlo comprimiendo
  47.                         FileInputStream fis = new FileInputStream(directorioZip+entrada.getName());
  48.                         int leer;
  49.                         byte[] buffer = new byte[1024];
  50.                         while (0 < (leer = fis.read(buffer))) {
  51.                             zous.write(buffer, 0, leer);
  52.                         }
  53.                         fis.close();
  54.                         zous.closeEntry();
  55.                     zous.close();                  
  56.                 } catch (FileNotFoundException e) {
  57.                     e.printStackTrace();
  58.                 } catch (IOException e) {
  59.                     e.printStackTrace();
  60.                 }              
  61.             }
  62.             System.out.println("Directorio de salida: " + directorioZip);
  63.         } else {
  64.             System.out.println("No se encontró el directorio..");
  65.         }
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement