Ich habe Chilkat Zip. Net bereits verwendet, um Backup-Dateien aus meiner Anwendung zu generieren, aber nach Problemen mit der Komponente für dieselbe Funktion zu Xceed Zip .Net verschoben.Korrigieren von beschädigten ZIP-Datei-Headern
Wenn Sie eine der Zips mit dem Chilkat erzeugt und versuchen, mit Xceed, 7Zip, WinZip zu extrahieren, dann schlägt es fehl.
Wenn Sie die gleiche Datei nehmen und extrahieren mit Chilkat, Windows Zip, WinRar dann extrahiert die Datei einfach gut.
Nachdem ich Wikipedia über das WinZip-Format gelesen hatte, habe ich den zentralen Verzeichnis- und den lokalen Datei-Header untersucht, und es scheint, dass die Chilkat-Komponente den Datensatz des zentralen Verzeichnisses falsch geschrieben hat. Wenn Sie etwas wie FRHed verwenden, um den zentralen Datensatz zu bearbeiten und die Dateigröße gleich der Größe des lokalen Headers zu machen, wird alles korrekt extrahiert.
Was würden Sie mir empfehlen?
- Schreiben Sie ein kleines Programm, um die Chilkat Bibliothek mit dem Zip extrahieren und dann mit der Xceed Bibliothek
- Lesen Sie die Zip-Datei für den notwendigen Zip-Marker (wie definiert in der Spec) und dann die Zentral korrigieren suchen recompress Header.
- Eine andere Kombination.
Danke. Was ich getan habe, ist, was Sie geschrieben haben, ich habe nur die alten Backup-Dateien dekomprimiert und dann wieder komprimiert, ABER nur, wenn die Datei selbst den Fehler im Datensatz aufwies. Ich habe eine kleine Anwendung, die als Support-Modul zu unserer Anwendung geliefert wird, gemacht, so dass die alte Bibliothek für den Gebrauch da war. –