In precedenza utilizzavo Chilkat Zip .Net per generare file di backup dalla mia applicazione, ma dopo aver riscontrato problemi con il componente, spostato su Xceed Zip .Net per la stessa funzione.Correzione di file ZIP danneggiati Intestazioni
Se si prende una delle Zips generate con il Chilkat e si tenta di estrarre usando Xceed, 7Zip, WinZip, fallisce.
Se si prende lo stesso file ed estratto con Chilkat, Windows Zip, WinRar, il file viene estratto correttamente.
Dopo aver letto su Wikipedia il formato WinZip, ho esaminato la directory centrale e l'intestazione del file locale, e sembra che il componente Chilkat abbia scritto in modo errato il record del registro della directory centrale. Se si utilizza qualcosa come FRHed per modificare il record centrale e rendere la dimensione del file uguale alla dimensione dell'intestazione locale, tutto viene estratto correttamente.
Cosa mi consigliate di fare?
- Scrivi una piccola utility che utilizza la libreria Chilkat per estrarre la zip e poi ricomprimere con la Xceed Biblioteca
- Leggere il file Zip alla ricerca dei marcatori Zip necessario (come definito nelle specifiche) e quindi correggere la centrale Intestazione.
- Un'altra combinazione.
Grazie. Quello che ho finito è quello che hai scritto, ho solo decompresso i vecchi file di backup, quindi li ho ricompressi MA solo se il file stesso mostrava l'errore nel record. Ho creato una piccola applicazione che è stata consegnata come modulo di supporto alla nostra applicazione in modo che la vecchia libreria fosse lì per l'uso. –