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

VB.NET Discussion :

Problème pour créer une archive GZIP et conserver les extensions


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut Problème pour créer une archive GZIP et conserver les extensions
    Bonjour a tou(te)s!

    Je cherchais une fonction pour créer une archive GZIP contenant un fichier .bak. Je suis donc allez dans la faq developpez.com où se trouve une méthode qui utilise la classe GZipStream.
    Voici le code, pour aller plus vite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Public Shared Function compresserFichier(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
          ' cheminSource : chemin complet du fichier à compresser
          ' cheminDestination : chemin complet du fichier compressé à créer
          Try
             ' Le fichier est placé dans le FileStream
             Dim monFileStream As New FileStream(cheminSource, FileMode.Open)
     
             Dim monBuffer(monFileStream.Length) As Byte
             ' Lecture de l'intégralité du FileStream
             monFileStream.Read(monBuffer, 0, CInt(monFileStream.Length))
             ' Fermeture du FileStream
             monFileStream.Close()
             ' Création du fichier qui va contenir le fichier compressé
             monFileStream = New FileStream(cheminDestination, FileMode.Create)
             ' Compression des données
             Dim monGZipStream As New GZipStream(monFileStream, CompressionMode.Compress, False)
             ' Ecriture des données compressées dans le fichier de destination
             monGZipStream.Write(monBuffer, 0, monBuffer.Length)
             ' Fermeture du GZipStream
             monGZipStream.Close()
             Return True
          Catch ex As Exception
             MsgBox(ex.Message)
             Return False
          End Try
       End Function
    Et en fait tout semble être très bien, MAIS mon fichier à l'intérieur de l'archive n'a plus d'extension .
    COmme je trouve pas comment corriger cette erreur, et que sur les forums cela ne semble pas avoir posé problème à ceux qui utilisent cette méthode, comment faites vous?

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Pour conserver l'extension, ton archive doit garder le nom du fichier (extension comprise) et tu rajoutes l'extension gz ensuite. Pour un fichier toto.bak l'archive doit donc s'appeler toto.bak.gz

    Aucun problème à la décompression ensuite. Mais attention le GZipStream du framework est vraiment pourri (l'archive est parfois plus grosse que le fichier de départ par exemple), ça ne vaut pas une librairie comme SharpZipLib.

  3. #3
    Membre chevronné
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    J'appuie ce que dit StormimOn passe plus par la librairie SharpZipLib tu trouveras sans doute de nombreux exemple j'ai utilisé cette librairie pour faire une petite application de backup de données importantes programmé si tu as besoin de plus d'information sur l'utilisation de cette librairie n'hésite pas
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Ah oui cela fonctionne bien. J'avais jeté un coup d'oeil sur SharpZipLib et dès que j'aurais le temps je ferais une update vers cette librairie. Pour l'instant, la solution convient parfaitement à l'usage, Merci.

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

Discussions similaires

  1. [Débutant] Problèmes pour créer une classe
    Par Hokage dans le forum Débuter
    Réponses: 3
    Dernier message: 27/09/2007, 16h48
  2. problème pour créer une procédure stockée
    Par PoichOU dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 06/09/2007, 09h58
  3. [ANTLR/EXPRESS] Problèmes pour créer une grammaire de EXPRESS
    Par cotmar dans le forum Autres langages
    Réponses: 2
    Dernier message: 07/05/2007, 09h05
  4. Problème pour créer une illumination par dôme de lumière
    Par m-matthieu dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 09/11/2006, 13h54
  5. Problème pour créer une clé étrangère
    Par DevloNewb' dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/07/2006, 16h30

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