Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    eseguire un Check di Un file Zip da Java : Come?

    Salve a tutti .. sto facendo un programma che si porta dietro le informazioni necessarie in un file compresso e la mia scelta è caduta su un file di tipo Zip visto che è integrato gli nelle librerie di JAVA.

    Ora mi sono già Fatto un po di classi che mi permettono di Comprimere , estrarre , aggiungere ed listare il contenuto di un file ZIP

    e fin qui tutto bene , poi mi sono preoccupato che il file mi si possa corrompere a quel punto ho cercato in internet come testare il file zip per capire se è integro o meno, ma non ho trovato molto ..

    Qualcuno mi sa dire come posso fare un test su un file zip per capire se è integro ?

    Ps. da prove fatta ho notato che se danneggio il file zip la funzione list non mi da errori me se estraggo il contenuto mi segnala :
    java.util.zip.ZipException: oversubscribed dynamic bit lengths tree

    mente se gli passo un file vuoto all'esecuzione della funzione list mi segnala :
    java.util.zip.ZipException: error in opening zip file

    non sono riuscito a trovare una lista di tutti i messaggi di java.util.zip.ZipException per tanto non so se ce ne sono altri.

  2. #2
    Non capisco il tuo problema di fondo... non ti basta catchare la ZipException per capire che il file è danneggiato e rispondere con un messaggio di errore? :master:
    "Na' sedia te vojo tirà!"

  3. #3
    si ci ho pensato anche io ma siccome gli errori mi vengano fuori da più funzioni , per evitare di catchare la ZipException in tutte le funzioni dove posso agire sul file zip preferisco fare una funzione boolean testzip che mi rende false se lo zip ha problemi ..

  4. #4
    Io penso che in ogni caso ti trovi a dover provare la decompressione per conoscere l'integrità del contenuto del file zip. Se ci pensi, anche Winrar (e presumo lo stesso Winzip) si accorge che un file è corrotto nel momento che gli ordini di decomprimerlo o comunque di farci qualche azione sopra.
    "Na' sedia te vojo tirà!"

  5. #5
    Leggendo la javadoc della classe java.util.zip.ZipEntry ho trovato un metodo che ti restituisce il CRC-32. A questo punto si può ipotizzare che con l'algoritmo di calcolo del CRC puoi provare a verificare che tutto corrisponda.
    "Na' sedia te vojo tirà!"

  6. #6
    nel frattempo che ci stavo pensando mi sa che ho imboccato la tua stessa strada perché l'idea mi è venuta anche a me..

    ho inserito nel mio comando ListZip il recupero del CRC dei file e ora ho fatto anche una classe seriale che si porta dietro i nomi dei file contenuti nel file zip e i dati come grandezza e crc. e poi la salvo come file assestante che poi vado a ricaricare per controllare se il file che ho estratto è corretto.

    Ora non so se l'informazione del CRC letta dal file Zip che è uguale a quella che calcolo io prima di comprimere il file nell'archivio ZIP è registrata in un punto dello zip o tutte le volte che leggo il contenuto viene calcolata ?

    se no mi creo un altra classe seriale e una volta completato il file zip su di esso ci calcolo il CRC cosi che se il file si danneggia o viene manomesso il crc cambia e me ne accorgo al volo...

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.