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: 14 años
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 zisthrows 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(fosBUFFER); 
            while ((
count zis.read(data0BUFFER))!= -1) { 
               
dest.write(data0count); 
            } 
     }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: 14 años
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: 16 años, 11 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 07:26.