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

Développement Windows Discussion :

Probleme pour zipper un dossier


Sujet :

Développement Windows

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Probleme pour zipper un dossier
    Bonjour,

    J'ai besoin de zipper un dossier pour ensuite l'envoyer par mail dans une appli winform c#. J'utilisais jusqu'a present la fonction suivante qui me semblait plutot safe et qui fonctionnait correctement:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     private void ZipSafe(string p_FolderName, string p_ArchiveName)
            {
                try
                {
                    if (File.Exists(p_ArchiveName))
                        File.Delete(p_ArchiveName);
     
                    string[] l_DataSet = Directory.GetFiles(p_FolderName, "*.txt");
                    using (ZipArchive l_Zip = ZipFile.Open(p_ArchiveName, ZipArchiveMode.Create))
                    {
                        foreach (string l_File in l_DataSet)
                        {
     
                            using (FileStream l_Stream = new FileStream(l_File, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite))
                            {
                                ZipArchiveEntry l_ZipArchiveEntry = l_Zip.CreateEntry(Path.GetFileName(l_File), CompressionLevel.Optimal);
                                using (Stream l_Destination = l_ZipArchiveEntry.Open())
                                {
                                    if (l_Stream.CanRead == true || l_Destination.CanWrite == true)
                                    {
                                        l_Stream.CopyTo(l_Destination);
                                    }
                                }
                                l_Stream.Close();
                            }
                        }
                        l_Zip.Dispose();
                    }
                }
                catch (System.Exception e)
                {
                    using (StreamWriter sw = new StreamWriter(@"C:\Users\**\Documents\ErrorZip.txt"))
                    {
                        string l = e.ToString();
                        sw.WriteLine(l);
                        sw.Close();
                    }
                }
            }
    Sauf que voila, incomprehension ce qui fonctionnait encore tres bien il y a deux semaines ne fonctionne plus. Je ne recupere pas l'exception dans mon fichier "ErrorZip.txt". J'ai utilise le debugger pour essayer de comprendre, en parcourant ligne par ligne l'execution se passe bien pour la premiere iteration de la boucle; par contre lors de la deuxieme iteration, une fois arrive a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_Stream.CopyTo(l_Destination);
    VS plante, et je suis oblige d'arreter le deboggage. Je ne sais pas si le probleme vient de la variable "l_Stream" ou de la variable "l_Destination". J'ai fais divers test (null, autorisation lecture/ecriture) et tout semble OK de ce cote la.

    Si quelqu'un avait un element de reponse, car je ne comprend meme pas ce qu'il se passe quand ca plante. Merci d'avance pour votre aide, je souhaite a tout le monde une bonne journee.
    Vincent

    PS: liens doc
    ZipArchiveEntry.Open() : https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
    FileStream(string, FileMode, FileAcess, FileShare) : https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    Stream.CopyTo(string) : https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    J'ai trouve le probleme moi-meme, c'est juste qu'un de mes fichiers etait tres lourd (250mb) et qu'il n'arrivait pas a le compresser.. si quelqu'un connait la taille maxi sans que ca plante ca m'interesse

  3. #3
    Membre régulier
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 125
    Points : 82
    Points
    82
    Par défaut
    Ce lien ne répond pas entièrement à la question, mais fourni un "moyen de compression plus efficace" d'après l'auteur du post.

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

Discussions similaires

  1. Probleme pour creer a dossier commun sur reseau Samba
    Par donkeyquote dans le forum Réseau
    Réponses: 6
    Dernier message: 19/11/2008, 19h57
  2. probleme pour recuperer le chemin du dossier courant
    Par HoB dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/08/2007, 11h22
  3. Probleme pour renommer un dossier
    Par blondelle dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/09/2006, 23h07
  4. Probleme pour lister un dossier
    Par quentingsc dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/08/2006, 09h36
  5. Réponses: 2
    Dernier message: 30/05/2002, 08h54

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