Utiliser un bundle zippé comme document de votre application ?
yoann
Membre
Salut la compagnie,
Toujours en train de jouer avec Newsstand je me demandais une chose. Les application comme Office (depuis les docx) ou iWork (depuis 09) utilise des bundle zippé comme format de document.
Inutile d'expliquer en quoi le contexte est intéressant, on garde une structure logique sous forme de dossier dans un fichier unique standardisé, bref, c'est une bonne idée.
Par contre ce que je ne sais pas c'est coté développeur, comment on gère ça ? Existe-t-il une classe wrapper de ce genre de document ? Capable d'aller agir directement dans le ZIP pour manipuler les données sans qu'on ai besoin nous même de gérer la compression / décompression des données ?
Toujours en train de jouer avec Newsstand je me demandais une chose. Les application comme Office (depuis les docx) ou iWork (depuis 09) utilise des bundle zippé comme format de document.
Inutile d'expliquer en quoi le contexte est intéressant, on garde une structure logique sous forme de dossier dans un fichier unique standardisé, bref, c'est une bonne idée.
Par contre ce que je ne sais pas c'est coté développeur, comment on gère ça ? Existe-t-il une classe wrapper de ce genre de document ? Capable d'aller agir directement dans le ZIP pour manipuler les données sans qu'on ai besoin nous même de gérer la compression / décompression des données ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pages fait de l'édition de document avec sauvegarde atomique, en un sens c'est logique comme action. Il serait intéressant de voir comment agit QuickLook (sur un docx par exemple, qui, il me semble, ne contiens pas de PDF d'aperçu).
- Tu unzip ton fichier xlsx dans une destination temporaire (lib : ZipArchive)
- Tu modifies les fichiers qui t'intéressent.
- Tu re-zip le tout
Et voilà c'est fini.
La dernière fois que j'ai cherché sur le net je n'ai trouvé aucun wrapper, donc j'ai dev le mien.
ça c'est la partie simple en effet. Je pensais plus à quelque chose qui écris et lis directement dans l'archive. Cela étant comme je l'ai dit plus haut, ce n'est intéressant que dans certains cas du à la phase de compression / décompression.
Par contre cela pourrait être plus intéressant dans le cas d'un tar qui lui ne gère pas de compression mais uniquement de l'archivage. Cela permettrait d'avoir une application avec des fichiers de type bundle tout en restant sur un fichier plat sur le disque. On évite d'utiliser deux fois trop d'espace disque, de perdre du temps en compression / décompression et on garde une structure de fichier inaltérable même si c'est passé par des OS qui ne gère pas les bundle comme le Mac.
Cette petite idée me trotte dans la tête depuis que tu as ouvert ce fil, il me manque juste le courage pour m'y mettre réellement /rolleyes.gif' class='bbc_emoticon' alt='::)' />
Si tu te lance dans quelque chose, met le sur git hub que je te donne un coup de main, et tant qu'à faire il faudrait faire quelque chose de configurable au niveau des algo employé (genre zip ou tar + [rien|bzip2|gunzip]) histoire que ça serve dans plusieurs cas.
En partant de http://code.google.com/p/ziparchive/ y en a pas pour longtemps.