Bonjour,
je cherche une façon de générer des .zip d'une taille maximum du même fichier au lieu de créer un seul zip.
Comment s'y prendre ?
Des librairies connues pour faire cela ?
Je vous remercie,
Gal'
Bonjour,
je cherche une façon de générer des .zip d'une taille maximum du même fichier au lieu de créer un seul zip.
Comment s'y prendre ?
Des librairies connues pour faire cela ?
Je vous remercie,
Gal'
Pas facile car la taille d'un zip n'est connue qu'à la fin. Il faudrait donc faire différentes combinaisons et les zipper à chaque fois pour vérifier. Ca va prendre énormément de temps !
N'est-il pas plus simple de faire un découpage binaire ? Tout dépend de l'utilisation qui en est faite par la suite.
La taille finale, on en a pas besoin pour découper si ?
Je pensais encoder dans un buffer.... puis le vider par paquets de la taille voulue. Le dernier paquet faisant une taille inférieure ou égale à la limite.
Ce n'est pas possible ?
Gal'
Ce n'est finalement que découper un fichier en plusieurs parties. C'est bien évidemment possible selon la méthode sus-citée par toi-même.
Peut-être la librairie java fournie par 7z (LZMA) permettrait d'être plus pointu au niveau compression.
Tu n'as pas compris.
J'ai pas dis ça, on se fiche de ce qu'il y a au départ, y'a un stream (peut-être concaténation de plusieurs sources ou pas), et on veut le compresser... le résultat doit être plusieurs fichiers zip au lieu d'un seul.1. il y a x fichiers de départ,
Oui mon idée était de demander si une librairie existait déjà ou pas pour le faire. Apparemment non. En revanche le pb est plus compliqué que cela ne peut paraître. Je m'explique: avec 7zp (logiciel sous windows) je génère une archive multi-fichiers, je suis capable de lire ces fichiers en simplement concaténant les fichiers pour ne considérer qu'un gros zip... et faire pareil de mon côté si je veux les générer, donc potentiellement ouvrir mes zip générés avec 7zp (derrière j'ai des clients finaux qui doivent les manipuler en dehors de mon appli).Envoyé par natha
En revanche le même bout de code pour lire un multi-fichier généré par WinZip ne marche pas: la concaténation n'est pas la solution. Donc c'est pas génial car pas loin d'être universel.
Concernant LMZA, j'ai télécharger ce qu'ils appellent honteusement un SDK. Le code porté sous Java est dans un état déplorable, aucune documentation, bref, ça fonctionne tout en reverse engineering sur du code vraiment pas beau. Il va me falloir passer un brin de temps pour me servir de l'encoder car j'ai fais un test perso à la va-vite basé sur ce que contient le main() de l'outil fournit, et ça finit en exception... donc la gestion des paramètres et des défauts doit être très sale, et i lne suffit pas d'appeler l'encodeur de façon basique.
Si j'ai le temps, je regarderais un peu plus en détails cette librairie.... en revanche quand on regarde le portage du code C en Java, on pleure....
Gal'
Euh le format zip ne prévoie pas de support pour le multi-fichiers. Si WinZip le supporte c'est une fonctionnalité du logiciel mais pas dans les specs du format (mais je peux me tromper).
A contrario les formats RAR et 7z le supporte.
Donc si tu veux une solution propre, il ne faut pas faire de zip.
Aucune idée. Désolé.
J'ai voulu utiliser LZMA mais le gzip inclu dans Java m'a suffit.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager