Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di mainetz
    Registrato dal
    Oct 2003
    Messaggi
    132

    [JAVA] Come usare TrueZIP?

    Ciao qualcuno di voi ha usato e sa spiegarmi come si usa TrueZIP.

    Ho la necessità di dover visualizzare i file all'interno dei archivi per poterli stampare a schermo.

    Come posso fare. Riporto sotto il codice che ho tentato di usa che però funziona solo con gli archivi zip...

    codice:
    package mioPack;
    
    import java.util.zip.ZipException;
    import de.schlichtherle.util.zip.*;
    import de.schlichtherle.io.*;
    import java.util.Enumeration;
    import java.io.IOException;
    
    public class AnalyzerThread implements Runnable {
    	
    	private ArchiveAnalyzer archAna;
    	
    	public AnalyzerThread(ArchiveAnalyzer archAna){
    		
    		this.archAna = archAna;
    		
    	}
    	
    	public void run(){
    		
    		String[] record = archAna.syncPop(); //il metodo syncPop fa il pop di uno stack contenente nel record 1 il percorso locale del file e nel record 0 il nome del file (es: "record[1] = dl/prova/" e "record[0]=prova.zip" quando la pila è finita ritorna "end")
    		while(record[0] != "end"){
    			
    			
    			try{
    				
    				File zipFile = new File(record[1]+record[0]); //carico il file in un istanza di file
    				ZipFile file = new ZipFile(zipFile);
    				Enumeration en = file.entries(); //mi faccio ritornare le entries dell'archivio
    				while(en.hasMoreElements())
    					{
    					ZipEntry entry = (ZipEntry)en.nextElement(); //una per una le casto in una entry
    					String nome = entry.getName();
    					//Stampo il nome del file solo se non è una directory
    					if(!entry.isDirectory()){
    						System.out.println(nome);
    					}
    					
    					
    					
    					
    					}
    			}catch(ZipException e){
    				System.out.println("Errore ZipException nel caricamento del file " + record[0]);
    			}
    			catch(IOException e){
    				System.out.println("Errore IOException nel caricamento del file " + record[0]);
    			}
    			record = archAna.syncPop();
    		}		
    	}
    
    }
    C'è una classe ArchiveAnalyzer che ha al suo interno una pila contente il percorso e il nome dei file e lancia questi thread (attraverso un thread pool).

    Il mio problema è che finchè gli archivi sono degli zip stampa esattamente tutte le entry appena un file diventa un .tar.gz mi lancia questa eccezione: ZipException nel caricamento del file 07esercitazione1.tar.gz

    Qualcuno mi sa dire dove sbaglio all'interno del mio codice?

    Grazie mille!

    mainetz.

  2. #2
    Utente di HTML.it L'avatar di mainetz
    Registrato dal
    Oct 2003
    Messaggi
    132
    Mi sembra più che ovvio (credo) che l'errore sia in:

    codice:
    ZipFile file = new ZipFile(zipFile);
    quando zipFile non è uno zipFile ma proprio non riesco a capire come fare di alternativo perchè non esiste nè una classe TarFile e la classe File non contiene metodi che ritornano tutti le entries contenute nel file...

    Vi prego aiutatemi perchè sono ad un punto morto!

    Ciao.

    mainetz!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.