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

Framework .NET Discussion :

Comment compresser les fichiers volumineux ?


Sujet :

Framework .NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Points : 63
    Points
    63
    Par défaut Comment compresser les fichiers volumineux ?
    Salut Les Gars,

    Je suis en train de crée un logiciel de compression/Decompression de donnée.

    Mais j'ai un leger probleme pour la compression des fichiers trop gros.

    Car monFileStream.Length est casté en int :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    monFileStream.Read(monBuffer, 0, System.Convert.ToInt32(monFileStream.Length));
     
    ou
     
    monFileStream.Read(monBuffer, 0, CInt(monFileStream.Length))
    Donc quand le fichier est tros gros la taille de monFileStream depasse la capacité du int (soit 32 bit, 2^32-1 = 2147483648)

    Ce qui est tres embettant, auriez vous une solution pour que je puisse regler ce problème.

    Merci

  2. #2
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Salut ThanosT,

    Quelle est la taille du fichier à compresser ?
    Quelle classe tu utilise ?
    Normalement tu peux eviter d'utiliser la taille du fichier en parcourant byte par byte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    FileStream sourceFile = File.OpenRead(inFilename);
    FileStream destFile = File.Create(outFilename);
    GZipStream compStream =
        new GZipStream(destFile, CompressionMode.Compress);
    int theByte = sourceFile.ReadByte();
    while (theByte != -1)
    {
        compStream.WriteByte((byte)theByte);
        theByte = sourceFile.ReadByte();
    }
    Mehdi Feki : Modérateur .Net

  3. #3
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Sinon tu fais une boucle et tu lis ton fichier en plusieurs fois

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Points : 63
    Points
    63
    Par défaut
    Merci les gars,

    Je vais essayer vos deux reponses.
    Et je repost la réponse des que je l'ai.

    PS: le fichier fesait bien plus de 2Go
    PPS: si vous avez d'autres idées hésité pas.

Discussions similaires

  1. Comment utiliser les fichiers *.PNG avec Delphi ?
    Par HopeLeaves dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/09/2005, 20h59
  2. Plus de partitions, comment récupérer les fichiers
    Par Michaël dans le forum Administration système
    Réponses: 6
    Dernier message: 01/06/2005, 20h41
  3. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35
  4. [Forms6i] Comment charger les fichiers du client ?
    Par patmaba dans le forum Forms
    Réponses: 10
    Dernier message: 31/01/2005, 16h17
  5. Réponses: 4
    Dernier message: 13/12/2004, 20h37

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