Compression de fichiers [Résolu]

Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention - 24 août 2007 à 19:26 - Dernière réponse : Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 11 sept. 2007 à 12:14
3
Merci
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

Merci cs_rodcobalt22 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cs_rodcobalt22
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 28 août 2007 à 13:05
0
Merci
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 ...
Commenter la réponse de cs_rodcobalt22
Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention - 28 août 2007 à 13:51
0
Merci
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 ;)
Commenter la réponse de Vince_02
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 29 août 2007 à 13:10
0
Merci
j'y jette un coup d'oeil, je te dis quoi (Positif ou négatif)
Commenter la réponse de cs_rodcobalt22
Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention - 29 août 2007 à 14:11
0
Merci
Ok, ça marche, que ce soit positif ou négatif.. ça ne peut que m'aider ^^
Commenter la réponse de Vince_02
Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention - 7 sept. 2007 à 14:01
0
Merci
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 ... ).
Commenter la réponse de Vince_02
Vince_02 33 Messages postés dimanche 15 mai 2005Date d'inscription 14 janvier 2016 Dernière intervention - 13 oct. 2007 à 18:20
0
Merci
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.
Commenter la réponse de Vince_02

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.