J'ai un programme C# qui utilise SharpZIPlib pour décompresser certains fichiers zip? Cela fonctionne bien mais sur un fichier, je reçois toujours l'erreur "EOF inattendue"? Existe-t-il réellement un marqueur EOF ou le fichier Zip a-t-il été tronqué?Qu'est-ce que le marqueur EOF pour un fichier ZIP?
Répondre
Votre fichier a été tronqué (ou éventuellement étendu ou endommagé).
Vous pouvez exécuter le programme de décompression ordinaire dessus (par exemple 'unzip -l file.zip
') pour le prouver. Incidemment, si vous avez utilisé FTP pour télécharger le fichier, vous souvenez-vous d'utiliser un transfert binaire? Si vous avez (accidentellement) utilisé le mode ASCII, cela ruinera tout fichier binaire tel qu'une archive ZIP.
EOF inattendu signifie exactement cela: lors de la lecture du fichier, la fonction a rencontré la fin du fichier et la bibliothèque attendait autre chose (données). Ce n'est pas un marqueur.
Un simple fichier ZIP ressemble à ceci:
LocalHeader1
CompressedData1
LocalHeader2
CompressedData2
[...]
LocalHeaderN
CompressedDataN
CentralHeader1
CentralHeader2
[...]
CentralHeaderN
EndHeader
Le EndHeader contient (entre autres) le décalage à la première CentralHeader, chaque CentralHeader contient un décalage à leur LocalHeader correspondant.
Certaines bibliothèques peuvent lire le fichier zip depuis le début pour traiter les LocalHeaders de manière séquentielle, récupérant ainsi ce qui peut être récupéré d'un fichier zip endommagé.
Avez-vous essayé DotNetZip? http://www.codeplex.com/DotNetZip
- 1. eof détection pour DirectShow
- 2. Détection EOF dans un fichier binaire en utilisant le Schéma
- 3. Type mime pour le fichier zip dans Google Chrome
- 4. Comment puis-je ouvrir un fichier avec une extension non-zip en tant que fichier zip dans emacs?
- 5. fichier zip Stream MVC.NET lancer le streaming
- 6. Comment inclure un fichier zip dans NSBundle?
- 7. Renommer un fichier/dossier dans un fichier zip en Java?
- 8. Extraire le fichier zip dans flex
- 9. Comment créer un fichier zip dans le même format que l'élément de menu "Compresser" du Finder?
- 10. Android: Comment décompresser un fichier zip crypté
- 11. Comment créer un fichier zip en Java
- 12. Est-ce que la limite de 10 Mo pour un téléchargement App Store 3g pour le zip ou le binaire?
- 13. Googlemaps - supprimer le marqueur précédent
- 14. Comment faire pour que Firefox ouvre un fichier avec une perluète dans le nom de fichier?
- 15. Détection EOF en C
- 16. Compresser les résultats de commande dans le fichier zip corrompu
- 17. Comment tester le drapeau EOF dans R?
- 18. Aligner sur le marqueur le plus proche
- 19. Bibliothèque C++ pour la modification d'un fichier ZIP
- 20. Déplacer le fichier zip entre les serveurs utilisant C#
- 21. httpconnection.getResponseCode() donnant exception EOF
- 22. Stocker et récupérer le fichier .ZIP dans SQL Server 2005
- 23. Impossible de supprimer le fichier Zip créé par SharpZipLib (FastZip)
- 24. Marqueur inséré
- 25. Comment créer un fichier ZIP de mes builds Cruise Control?
- 26. Python 2.6 - Télécharger le fichier zip - Poster 0,4
- 27. Problème lors de l'ouverture d'un fichier zip
- 28. java servlet: générer un fichier zip à partir de BLOBs
- 29. Comment puis-je générer un fichier Zip temporaire, puis le supprimer automatiquement après le téléchargement?
- 30. création de fichier zip multiplate-forme
Informations intéressantes - merci. –
DotNetZip (http://dotnetzip.codeplex.com) peut éventuellement effectuer une analyse complète du fichier zip, en ignorant le répertoire. Cela vous permet de reconstruire le répertoire zip à partir des entrées zip existantes, pour un fichier corrompu ou tronqué. – Cheeso