IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

LZ4 compression multi-fichiers


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Par défaut LZ4 compression multi-fichiers
    Bonjour,

    Je programme en Csharp et j'ai trouvé sur le net LZ4Sharp qui permet de compresser des fichiers.

    J'arrive à compresser 1 seul fichier, mais je voudrais regrouper plusieurs fichiers en 1 seul pour les compresser avec LZ4Sharp?

    Je ne sais pas comment faire, est-ce que quelqu'un sais si on peut le faire avec LZ4Sharp?

    Merci.

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    ne connaissant pas cette bilbi j'ai deux questions pour toi :
    - es-tu sûr qu'elle permet de faire des archives ?
    - pourquoi ne pas utiliser les fonctionnalités du framework .NET (System.IO.Compression.ZipFile) ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Par défaut
    1- je ne sais pas si on peut y faire une archive, c'est mon but mais je ne sais pas comment faire. J' ai pour l'instant réussi à compression qu'un seul fichier
    2- Je souhaite utiliser LZ4 car c'est un nouvel algo qui est assez récent et apparement plus performant.

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    D'après la fiche wiki :
    - il est effectivement des plus rapides, toutefois ce sera aux dépens de la taille finale,
    - il s'agit uniquement d'un algo de compression, il n'est aucunement question d'archivage
    (ça ne veut pas dire que la lib que tu utilises ne le fait pas, mais c'est pas le but premier de l'algo).
    Peut-être faudra-t-il trouver une bilbi qui prend en charge cette partie (genre un truc qui gère les TAR).

    T'as un lien vers la doc de cette bilbi ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Par défaut
    tu peux charger la dll de LZ4 sur https://lz4net.codeplex.com/ et la mettre en référence dans un projet.
    sinon, j'ai trouver un lien d'exemple: http://justonesandzeros.typepad.com/...mpression.html
    Pour le code simplifié, j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Compression
                string fichier = "C:\\Users\\Idem\\Desktop\\test.txt";
                byte[] uncompressed = System.IO.File.ReadAllBytes(fichier);
                byte[] compressed = LZ4Sharp.LZ4.Compress(uncompressed);
                string fichierLZ4 = "C:\\Users\\Idem\\Desktop\\test.LZ4";
                System.IO.File.WriteAllBytes(fichierLZ4, compressed);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Décompression
                string fichierLZ4 = "C:\\Users\\Idem\\Desktop\\test.LZ4";
                byte[] compressed = System.IO.File.ReadAllBytes(fichierLZ4);
                byte[] uncompressed = LZ4Sharp.LZ4.Decompress(compressed);
                string fichier = "C:\\Users\\Idem\\Desktop\\test.txt";
                System.IO.File.WriteAllBytes(fichier, uncompressed);
    Ca marche bien pour 1 fichier.

    Apparement, pour de de l'archivage, rien n'est proposé.

    Comme on traite un tableau de byte[], je pense que pour de l'archivage il suffit d'enrichir ce tableau de byte[] en empilant la compression des multiples fichiers et en rajoutant une en-tête qui donne la longueur des compressions et les nom des différents fichiers.

    Tu penses que peut s'en sortir comme ça pour de l'archivage?

  6. #6
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut

    LZ4 est un algorithme compression. Bien qu'utilisées souvent conjointement, la création d'archive et la compression sont deux choses différentes.

    Tu peux donc soit essayer d'implémenter ton propre système de création d'archivage (mais selon moi, ce serait du temps perdu), soit utiliser un existant (tar, ZIP, etc.) et placer dans ces archives tes fichiers compressés en LZ4. Pour ma part, j'utilise depuis des années la bibliothèque SharpZipLib sous toutes ses formes en prod, elle fait parfaitement le boulot (ZIP, Gzip, tar, bzip2).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compression decompression zlib multi fichier
    Par croc14 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 18/11/2010, 15h06
  2. compresser un fichier à partir d'une application
    Par Julian21 dans le forum C++
    Réponses: 6
    Dernier message: 20/06/2007, 22h32
  3. Compression de fichiers
    Par BilTCD dans le forum Windows
    Réponses: 2
    Dernier message: 03/08/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo