Compression + concaténation de dossiers

Soyez le premier à donner votre avis sur cette source.

Vue 9 962 fois - Téléchargée 1 290 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
-
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
-
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
-
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 -
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
-
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

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.