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 :

Dézipper un dossier de fichiers


Sujet :

C#

  1. #1
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut Dézipper un dossier de fichiers
    Bonjour;

    mon projet consiste à copie les fichiers en respectant l’arborescence des fichiers chez le client.
    mais vu qui il est impossible de faire ça dans une application Web.

    je me suis dit que peut être en zippant le dossier et upload.
    et faire un Unzip dans le serveur pour avoir l’arborescence des fichiers .

    ma demande est ce que il est faisable de unizipper un dossier créé par winzip.

    ou d' utiliser un algorithme connu qui peut me permettre à avoir cette résultat.

    merci d'avence

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    SharpZipLib fait ça très bien. Tu devrais y trouver ton bonheur.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il y aussi DotNetZip (pas testé, mais vu que l'API de SharpZipLib est bien pourrie, DotNetZip peut pas être pire ^^)

  4. #4
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Bonjour

    j'ai fait Coup d'oeil sur DotnetZip pour tester voila le code

    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
    public static void  unzip(System.IO.Stream data)
            {
     
              string unpackDirectory = "Extracted Files";
              byte[] inputbyte = new byte[data.Length];
              data.Read(inputbyte, 0, inputbyte.Length);
              System.IO.MemoryStream Mstream = new System.IO.MemoryStream(inputbyte);
              using (ZipFile zip1 = ZipFile.Read(Mstream))
              {
                  // here, we extract every entry, but we could extract conditionally
                  // based on entry name, size, date, checkbox status, etc.  
                  foreach (ZipEntry e in zip1)
                  {
                    e.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
                  }
               }
            }
    et je fait l'appel avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unzip(file.InputStream);
    file est de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Web.HttpPostedFile
    mais j'ai un résultat de l'exception
    Cannot read that as a ZipFile
    malgré que le fichier je l'ai crée moi même avec un répertoire


    j'ai testé le code dans un winform application et ça marche très bien

    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
     openFileDialog1.ShowDialog();
     
                StreamReader SR = new StreamReader(openFileDialog1.FileName);
                string unpackDirectory = @"I:\Test\";
                byte[] inputbyte = new byte[SR.BaseStream.Length];
                SR.BaseStream.Read(inputbyte, 0, inputbyte.Length);
                System.IO.MemoryStream Mstream = new System.IO.MemoryStream(inputbyte);
                using (ZipFile zip1 = ZipFile.Read(Mstream))
                {
                    // here, we extract every entry, but we could extract conditionally
                    // based on entry name, size, date, checkbox status, etc.  
                    foreach (ZipEntry _e in zip1)
                    {
                        _e.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
                    }
                }

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/03/2006, 10h52
  2. [VBA-A]Parcours d'une arborescence dossiers et fichiers
    Par sidneyvba dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/03/2006, 16h58
  3. [dézipper]Trouver si un fichier a 1 accent dans un zip
    Par joseph_p dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 29/12/2005, 08h42
  4. dossier ou fichier?
    Par Biosox dans le forum C++
    Réponses: 2
    Dernier message: 06/10/2005, 14h41
  5. Dossier ou Fichier avec ShellListView
    Par MoussDiouf dans le forum Langage
    Réponses: 6
    Dernier message: 14/06/2003, 12h33

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