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 :

Lire un fichier sans le dézipper [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2018
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Lire un fichier sans le dézipper
    Bonjour,

    Je vous explique mon problème :
    je possède un zip contenant plusieurs fichiers, j'aimerais pouvoir ouvrir un fichier et récupérer ce qu'il contient sans le dézipper.
    J'ai cherché du coté de DotNetZip et SharpZipLib, mais je n'ai rien trouvé qui puisse m'aider.

    La seule chose que j'ai trouvé, permet de récupérer le contenu de tous les fichiers (je vous met le code, cela pourra peut être vous aider)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                var zip = new ICSharpCode.SharpZipLib.Zip.ZipInputStream(File.OpenRead(lienZip));
                var filestream = new FileStream(lienZip, FileMode.Open, FileAccess.Read);
                ICSharpCode.SharpZipLib.Zip.ZipFile zipfile = new ICSharpCode.SharpZipLib.Zip.ZipFile(filestream);
                ICSharpCode.SharpZipLib.Zip.ZipEntry item;
                while ((item = zip.GetNextEntry()) != null)
                {
                    using (StreamReader s = new StreamReader(zipfile.GetInputStream(item)))
                    {
                        Console.WriteLine(s.ReadToEnd());
                    }
                }

    Pouvez vous m'aider ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 455
    Points : 1 594
    Points
    1 594
    Par défaut
    Bonjour,

    Et bien ton exemple fait déjà ce que tu cherches à faire, ce que tu appelles "lire sans dézipper" c'est en gros mettre en mémoire le contenu.

    A toi de voir comment tu veux gérer ça.

    Si tu veux directement lire un fichier dans ton ZIP, utilise la méthode GetEntry().

    J'ai modifié ton code de départ en y incluant un exemple de cette méthode :

    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
     
            public static void DezipFile(string name, string path)
            {
                using (var zip = new ZipInputStream(File.OpenRead(path)))
                {
                    using (var filestream = new FileStream(path, FileMode.Open, FileAccess.Read))
                    {
                        ZipFile zipfile = new ZipFile(filestream);
                        ZipEntry item = zipfile.GetEntry(name);
     
                        if (item != null)
                        {
                            using (StreamReader s = new StreamReader(zipfile.GetInputStream(item)))
                            {
                                // Affiche le contenu pour le test uniquement
                                Console.WriteLine($"{item.Name} - {s.ReadToEnd()}");
     
                                // Ce que tu veux faire avec tu le mets ici
                            }
                        }
                    }
                }
            }
    De cette manière tu lis directement le contenu du fichier qui t'intéresse.

    Le nom du fichier doit contenir son chemin complet, tel que : "Dossier/fichier.txt"
    Keep calm and debug it

    www.pixel-juice.net

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2018
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Merci c'est parfaitement ce que je voulais

    Bonne journée !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/03/2011, 17h57
  2. Lire un fichier sans la première ligne
    Par afifaNancy dans le forum IO
    Réponses: 2
    Dernier message: 12/03/2011, 19h29
  3. lire mon fichier sans setup
    Par drogba-11 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 19/06/2008, 20h28
  4. Lire un fichier sans l'ouvrir
    Par RéviAT dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/04/2008, 09h37
  5. lire un fichier SANS activex?
    Par ataya dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/07/2006, 19h04

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