Compression de fichiers

Résolu
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 - 24 août 2007 à 19:26
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 - 13 oct. 2007 à 18:20
Bonjour a tous ^^

J'ai un petit soucis actuellement, au sujet d'une source que j'ai posté récemment : http://www.csharpfr.com/codes/COMPRESSION-DECOMPRESSION-PARTIR-SDK-LZMA-7ZIP-MULTI-FICHIER_43866.aspx

La compression / décompression de fichiers ou de byte[] se déroule parfaitement bien, même à la volée ( archive en lecture/écriture ), mais le problème est que la taille de l'archive se trouve être assé volumineuse par rapport a ce que peux faire 7Zip, ou LZMA en passant par un TAR.

J'ai bien une idée pour rémédier a celà, mais le truc c'est que je vois pas comment faire ....

Actuellement, le code lis un fichier, et l'ajoute ensuite à la fin de l'archive, s'il y en a plusieurs, la procédure est répété a chaque fois.

L'idée que j'ai serait de charger en mémoire chaque petit fichier ( de 1 à 10 Ko ) j'usquà ce qu'a avoir en mémoire 1024 ko par exemple et de les compresser, ensuite l'autre idée serait de passer par un TAR mais je vois pas comment je pourrais faire pour pouvoir lire/écrire le TAR sans pour autant le décompresser ...

Auriez vous une idée ou un exemple de la marche a suivre pour effectuer cette petite idée, peut être en avez vous une meilleure a me proposer ?

7 réponses

cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
11 sept. 2007 à 12:14
Salut, désolé
je ne vois pas pourquoi il fait ça, je t'avoue que je n'ai que regarder birévement mais je ne vois rien qui me choque.
L'ajout du fichier sur une archive existante ne pourrait elle pas créer des inscriptions supplémentaire aux attribut d'archive ?
C'est le seul truc qui pourrais clocher et encore ça n'est qu'une hypothèse

RodCobalt22, vous salue bien
Pensez au TAG résolu ! Ainsi les réponses seront plus facile à trouver et les serial Helper iront plus vite
3
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
28 août 2007 à 13:05
Juste une petite question. le poid du fichier correspond t-il bien à la réalité ?
Parfois, le poid (ou taille) marqué par l'explorateur Windows est plus important.

Après, si le poid correspond bien, dans ce cas, je te conseil de vérifier les argument de ta ligne de commande voir s'il n'y a pas quelque chose qui te permet d'optimiser la compression.

Petit truc aussi, quand tu ajout dans une archive, il me semble que tu décompresse tout de même dans un fichier Temporaire (A vérifier).

Sinon, n'hésite pas à poster ton source (ou la partie intéressante) pour que l'on puisse mieux comprendre et donc t'aider ...
0
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 2
28 août 2007 à 13:51
Pour répondre a ta question, oui tout correspond, je fais même une vérif. du crc après décompression et c'est ok.

Mais en faite, je pense pas que ce soit due à la compression, mais plus aux informations que je stock dans l'archive afin de pouvoir récupérer le ou les fichiers qui m'intéresse.

Toute la source est postée ici =>
http://www.csharpfr.com/code.aspx?ID=43866

Le code source qui permet la compression / décompression, c'est le fichier :
LibCompress/LibCompress/LzmaTest.cs<li>fonction de compression : AppendFile(String file, String lzDir)</li><li>file => C'est le fichier a compresser. et c'est a partir de lui que je génère un LzFileInfo.
Tous que contient le LzFileInfo sera écrit sur l'archive sauf les Offset.
</li><li>lzDir => Un dossier fictif dans l'achive.</li><li>fonction de décompression : ExtractFile(LzFileInfo lzInfo, String destPath, Boolean PreserveDir)</li><li>lzInfo => fournit toute les infos pour décompresser le fichier.</li><li>destPath => Dossier de destination sur le disque dure</li><li>PreserveDir => Si oui ou non on veut présérver le dossier (lzDir de AppendFile)</li>J'espère que tu arriveras a me relire ... Sinon au pire, je recommenterais chaque partie du code ;)
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
29 août 2007 à 13:10
j'y jette un coup d'oeil, je te dis quoi (Positif ou négatif)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 2
29 août 2007 à 14:11
Ok, ça marche, que ce soit positif ou négatif.. ça ne peut que m'aider ^^
0
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 2
7 sept. 2007 à 14:01
Mouais ...

Bon, ce n'est pas grave, en attendant, je vais allé mettre a jour les sources, après avoir nettoyé le tout biensur ...
Il y a eu pas mal de changement depuis ( Nettoyage, Suppression de superflue, etc ... ).
0
Vince_02 Messages postés 32 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 14 janvier 2016 2
13 oct. 2007 à 18:20
Au niveau des attributs, ça va, c'est correct.

Je vais faire une petite class pour la gestion d'erreur, sur certaine class maitresse je retourne True si elle a été effectué correctement si non False, ça fait un peux bourrin et ça ne me permet pas de savoir ce qui cloche .... ( Permission de lecture/Ecriture refusé, Fichier déjà ouvert, etc ... )

On sait que ça ne marche pas mais on ne sait pas pourquoi lol

PS : Désolé du temps d'absence, j'ai débuté une formation donc pas trop le temps en ce moment, a part le Week-End.
0
Rejoignez-nous