Compression + concaténation de dossiers

Soyez le premier à donner votre avis sur cette source.

Vue 10 307 fois - Téléchargée 1 396 fois

Description

Ca permet de concatener les fichiers d'un dossier (l'arborescence est respectée et tous les sous-dossiers ainsi que leurs fichiers sont inclus) et comprime le tout en un fichier. Ce fichier peut evidemment être déconcatené (d'où l'importance du respect de l'arborescence d'origine). Pour ceux qui n'ont rien pigé à ma prose, on peut comparer cette petite appli à WinZip (en moins bien :-). L'algo de compression est zLib. C'est gratuit, c'est rapide, c'est efficace ... c'est beau!
J'ai un peu pompé le design de WinZip.

Ce qui peut être intéressant dans cette source:
- scan des fichiers d'un dossier et de ses sous dossiers;
- concaténation + déconcaténation de fichiers;
- compression via zLib;
- association d'un type de fichier avec une appli (icône + Open)
- drag and drop de fichiers / dossiers directement dans la fenêtre de l'appli.

Source / Exemple :


it's all in the zip !

Conclusion :


Je me suis donné la peine de commenter mon code:-) Je serais par conséquent reconnaissant si vous pouviez aussi le commenter, voire le noter.
Je réponds volontier aux questions, et je suis ouvert à toute critique.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012
19 sept. 2005 à 08:52
j'ai un pb avec ce source, si je compresse un fichier d'environ 640Mo j'ai un message "Erreur N°7, Memoire insuffisante". Puis tout plante.
jmc70 Messages postés 77 Date d'inscription samedi 9 novembre 2002 Statut Membre Dernière intervention 6 juillet 2014
8 nov. 2004 à 23:06
Excellent travail, très bien commenté ce qui permet de réutiliser les fonctions.
Une petite erreur cependant : lorsqu'on décompresse, il manque 1 fichier (le dernier de la liste). Il suffit de rajouter + 1 dans la fonction DeconcatFiles (mais il doit y avoir une solution plus élégante) :
Open CafLFileName For Binary As #FF1
' DUMMY TOC
Get #FF1, , Counter
Get #FF1, , FileLen
FileName_ = Input(FileLen, #FF1)
Get #FF1, , FileLen
ReDim FileContent(1 To FileLen)
Get #FF1, , FileContent()
' GET FILES
For i = 2 To Counter + 1
C'est pratique aussi de disposer et de pouvoir mettre à disposition le fichier Winconcat.exe qui une fois inscrit dans la base de registre permet d'ouvrir les archives qu'on aurait réalisées avec un autre programme utilisant ces routines (ainsi le suffixe .caf n'est-il pas si exotique).
L'idéal serait d'obtenir des fichiers compatibles avec les dezippeurs institutionnels mais pour les archives multiples, cela dépend essentiellement de la TOC (qui ici est propriétaire).
Sinon, a quand une adaptation avec la nouvelle zlib1.dll ?
troll_fou Messages postés 1 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 12 juillet 2004
12 juil. 2004 à 10:19
cette méthode est tres interrssente. Mais peut on créer des fichiers compatible winzip. Avec cette dll un fichier seul oui alors avec la comcaténation?

Merci
philheiz Messages postés 117 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 11 octobre 2007 1
22 avril 2004 à 14:02
Merci,

Pour le mot de passe, je n'y avais pas pensé, mais c'est relativement simple: il faudrait, en plus de la compression, ajouter un module de cryptage (pas forcément du 128 bits super lent !). Ou alors crypter tout le fichier (et non les fichier compressés) et encoder la clé qqpart dans l'archive.

Je ne suis pas un spécialiste du tout, mais je suis sûr que ca ne serait pas spécialement compliqué. 'Faut que je cogite ...
IdhaoBlue Messages postés 23 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 29 juillet 2005
22 avril 2004 à 13:23
C'est joli, clair, instructif et interressant. Quant aux commentaires, juste ce qu'il faut... Que demande le peuple ? Bravo ! Un exemple à suivre.... 9/10
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.