Foros del Web » Programación para mayores de 30 ;) » Java »

Descomprimir en un directorio específico con java.util.zip

Estas en el tema de Descomprimir en un directorio específico con java.util.zip en el foro de Java en Foros del Web. ¿Como descomprimir en un directorio específico? Código PHP: import java . io . BufferedInputStream ;  import java . io . BufferedOutputStream ;  import java . io . FileInputStream ...
  #1 (permalink)  
Antiguo 12/03/2012, 08:50
Avatar de ARICARRARO  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 227
Antigüedad: 15 años, 9 meses
Puntos: 10
Descomprimir en un directorio específico con java.util.zip

¿Como descomprimir en un directorio específico?

Código PHP:
import java.io.BufferedInputStream; 
import java.io.BufferedOutputStream; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipInputStream; 
import static java.lang.System.out; 
public class 
Prueba13 { 
    public static final 
int BUFFER = 2048; 
    public static final 
String path="C:/Users/alguien/Documents/NetBeansProjects/IntroGWT1/pruebaDescomprimir/descomprime/pruebaZip.zip"; 
    public static final 
String destino="C:/temp/"; 

 public  static 
void main(String[] args)throws Exception{ 
     
Prueba13 pro=new Prueba13(); 
     
out.println("[Inicio descomprimir]"); 
     
out.println("Lee: "+path.toString()); 
     
//ver 
     
pro.leer(path); 
     
FileInputStream fis=new FileInputStream(path); 
     
out.println("Descomprime:"); 
     
//descomprimir solo xml y pdf 
     
pro.descomprimirGuardar(fis); 
    
out.println("[Fin descomprimir]"); 

 } 

 
//descomprimir y guardar en directorio por default 
 
public  void descomprimirGuardar(FileInputStream fis){ 
 try { 
         
BufferedOutputStream dest = null; 
         
ZipInputStream zis = new     ZipInputStream(new BufferedInputStream(fis)); 
         
ZipEntry entry; 
         while((
entry = zis.getNextEntry()) != null) { 
// System.out.println("Extrayendo: " +entry); 
  //si no es directorio 
if(!entry.isDirectory()){ 
if(
esPDF(entry)){ 
   
out.println(entry+"  >>> es pdf: "+esPDF(entry)); 
    
descomprime(entry,dest,zis); 
} 
if(
esXML(entry)){ 
  
out.println(entry+"  >>> es xml: "+esXML(entry)); 
   
descomprime(entry,dest,zis); 
} 
} 

//si es directorio 
if(entry.isDirectory()){ 
    
out.println("[Directorio encontrado]"); 
if(
esPDF(entry)){ 
    
out.println(entry+" >>>  es pdf: "+esPDF(entry)); 
    
descomprime(entry,dest,zis); 
} 
if(
esXML(entry)){ 
   
out.println(entry+" >>> es xml: "+esXML(entry)); 
   
descomprime(entry,dest,zis); 
} 
} 
} 
zis.close(); 
} 
catch(
Exception e) {e.printStackTrace();} 

 } 
//proceso para descomprimir 
 
public void descomprime(ZipEntry entry,BufferedOutputStream dest,ZipInputStream zis) throws IOException{ 
    
//dest --> revisar el "destino" de los archivos descomprimidos 
//   String currentEntry = entry.getName(); 
//     File destFile =new File(destino, currentEntry); 
//     File destinationParent = destFile.getParentFile(); 
//     destinationParent.mkdirs(); 
//------------------------------------------------------------ 
     
try{ 
       
int count; 
            
byte[] data = new byte[BUFFER]; 
            
FileOutputStream fos = new     FileOutputStream(entry.getName()); 
            
dest = new BufferedOutputStream(fos, BUFFER); 
            while ((
count = zis.read(data, 0, BUFFER))!= -1) { 
               
dest.write(data, 0, count); 
            } 
     }catch(
Exception exc){ 
     } 
     
dest.flush(); 
     
dest.close(); 
 } 
//solo lee el contenido, identificando pdf y/o xml 
 
public void leer(String path){ 
try { 
FileInputStream fis = new FileInputStream(path); 
ZipInputStream zis = new ZipInputStream(fis); 
ZipEntry ze; 
while((
ze=zis.getNextEntry())!=null){ 
    
//si no es directorio 
if(!ze.isDirectory()){ 
if(
esPDF(ze)){ 
   
out.println(ze+"  >>> es pdf: "+esPDF(ze)); 
} 
if(
esXML(ze)){ 
  
out.println(ze+"  >>> es xml: "+esXML(ze)); 
} 
} 
//si es directorio 
if(ze.isDirectory()){ 
    
out.println("[Directorio encontrado]"); 
if(
esPDF(ze)){ 
    
out.println(ze+" >>>  es pdf: "+esPDF(ze)); 
} 
if(
esXML(ze)){ 
   
out.println(ze+" >>> es xml: "+esXML(ze)); 
} 
} 
zis.closeEntry(); 
} 
zis.close(); 
} catch (
FileNotFoundException e) { 
e.printStackTrace(); 
} catch (
IOException e) { 
e.printStackTrace(); 
} 
} 
 
//si es pdf 
 
public boolean esPDF(ZipEntry arch){ 
      if(
arch.getName().endsWith("pdf")) 
         return 
true; 
 return 
false; 
 } 
//si es xml 
 
public boolean esXML(ZipEntry arch){ 
     if(
arch.getName().endsWith("xml")) 
         return 
true; 
 return 
false; 
 } 




} 
  #2 (permalink)  
Antiguo 12/03/2012, 08:58
Avatar de ARICARRARO  
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 227
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Descomprimir en un directorio específico con java.util.zip

He usado String currentEntry = entry.getName();
// File destFile =new File(destino, currentEntry);
// File destinationParent = destFile.getParentFile();
// destinationParent.mkdirs();

y no me funciona
  #3 (permalink)  
Antiguo 12/03/2012, 10:04
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 18 años, 8 meses
Puntos: 57
Respuesta: Descomprimir en un directorio específico con java.util.zip

http://java.sun.com/developer/techni...g/compression/

Etiquetas: descomprimir-en-java, javabean, javabeans, zipfile
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:32.