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

Dotnet Discussion :

Parcourir un dossier et le zipper


Sujet :

Dotnet

  1. #1
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Parcourir un dossier et le zipper
    Bonjour
    Je souhaite parcourir un dossier, compresser l'ensemble des éléments et les supprimer après, je suis sur le framework 3.5 et je ne peut pas passer sur la dernière version.
    j'ai testé avec GzipStream mais rien à faire ...
    Avez vous une idée svp?
    merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    j'ai testé avec GzipStream mais rien à faire
    c'est un peu trop vague pour qu'on puisse t'aider... au moins le bout de code qui ne produit pas le résultat attendu pourrait aider.

    Sinon des exemple avec GzipStream on en trouve à la pelle sur le net. J'ai cliqué que sur celui-ci et je pense qu'il est assez complet.

    Cela dit je n'ai jamais utilisé GzipStream...

    Bon code,
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  3. #3
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut ok merci
    Ok Jack merci .. d'abord c'est du vb.net.
    pour la méthodologie c'est comme suit : vider tous les fichiers du dossier au cas ou ils existent, après créer le zip enfin supprimer les fichiers.
    donc pour la partie code c'est :
    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
    40
     
    '-------------------------------------------------------------------------------------------------------------------------------------------'
        ' Partie de delete de tous les fichiers ndf, xndf et txt
        '-------------------------------------------------------------------------------------------------------------------------------------------'
        Dim DossierOLS As String = "D:\bin\OLS"
        Dim OLStxt As String() = Directory.GetFiles(DossierOLS, "*.txt")
        Dim OLSndf As String() = Directory.GetFiles(DossierOLS, "*.ndf")
        Dim OLSxndf As String() = Directory.GetFiles(DossierOLS, "*.xndf")
        'Fichier extension txt
        If OLStxt.Length <> 0 Then
          Try
            For Each ftxt As String In OLStxt
              File.Delete(ftxt)
            Next
          Catch dirNotFound As DirectoryNotFoundException
            LogStartStop("Erreur de chemin d'enregistrement")
          End Try
        End If
        'Fichier extension ndf
        If OLSndf.Length <> 0 Then
          Try
            For Each ndf As String In OLSndf
              File.Delete(ndf)
            Next
          Catch dirNotFound As DirectoryNotFoundException
            LogStartStop("Erreur de chemin d'enregistrement")
          End Try
        End If
        'Fichier extension xndf
        If OLSxndf.Length <> 0 Then
          Try
            For Each fxndf As String In OLSxndf
              File.Delete(fxndf)
            Next
          Catch dirNotFound As DirectoryNotFoundException
            LogStartStop("Erreur de chemin d'enregistrement")
          End Try
        End If
        '-------------------------------------------------------------------------------------------------------------------------------------------'
        '-------------------------------------------------------------------------------------------------------------------------------------------'
    merci @ toi J@ck

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Je ne vois ni référence à GzipStream, ni problème énoncé, encore moins de tests réalisés pour trouver une piste... Ça commence a être redondant j'ai l'impression !
    Par contre il y a une liste de course
    la méthodologie c'est comme suit : vider tous les fichiers du dossier au cas ou ils existent, après créer le zip enfin supprimer les fichiers.
    Tu dois comprendre qu'ici on essayera, avec toi, de résoudre tes problèmes techniques, d'archi, de conception ... mais l'on ne te proposera jamais clé en main une solution toute faite, pour ça je suis payé ($_$).
    Donc si tu veux que l'on avance avec toi et que l'on résolve tes problèmes techniques, prend l'habitude d'isoler tes problèmes, par exemple, là, tu as un objectif : archiver des fichiers. Pour ça plusieurs étapes sont nécessaires, il faut savoir copier un fichier, zipper un dossier, supprimer un fichier. Tu peux pas venir et nous dire => "Je sais pas archiver un dossier, merci de me faire la moulinette que mon chef demande ..." je caricature mais on en est pas loin.
    Par contre nous dire "j'ai des difficulté à utiliser la bibliotheque TrucDeLaMort.dll... J'ai suivi ce tuto... cependant cette ligne de code ne produit pas le résultat attendu"... enfin quelque chose qui montre que tu as déjà fait des recherches sur ta problématique, qui vas également nous aider à avancer, et surtout que ton problème est clairement isolé et identifié. Parce que résoudre un problème qui n'est pas identifié, pas facile. Mets toi à ma place et relis tes post, franchement je ne saurais pas quoi te dire, c'est d'ailleurs la raison pour laquelle personne ne t'as répondu...

    Donc précise et isole le problème, montre nous ce que tu as déjà fais et ce qu'il ne marche pas ...

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  5. #5
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Merci
    Houla tu as mal compris je pense mes propos, je ne demande pas de clé en main , je bloque sur une partie donc je demande de l'aide. Bref on est pas ici dans le jugement.
    Pour ma part j'avance et la partie que j'ai écrite me permet justement de vider mon dossier, notamment supprimer tus les fichiers avec les extensions txt, ndf et xndf.
    sur cette partie, celle de la compression, à la date d’aujourd’hui j'arrive a compresser tous les fichiers d'un dossier mais pas le dossier.donc ci joint 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     Public Sub compression(ByVal fi As FileInfo)
     
     
        Using inFile As FileStream = fi.OpenRead()
     
          If (File.GetAttributes(fi.FullName) And FileAttributes.Hidden) _
              <> FileAttributes.Hidden And fi.Extension <> ".gz" Then
            ' Creation des fichiers compressés. 
     
            Using outFile As FileStream = File.Create(fi.FullName + ".gz")
     
              Using Compress As GZipStream = New GZipStream(outFile, CompressionMode.Compress)
                'Copie dans le setream. 
                Dim buffer As Byte() = New Byte(4096) {}
                Dim numRead As Integer
                numRead = inFile.Read(buffer, 0, buffer.Length)
                Do While numRead <> 0
                  Compress.Write(buffer, 0, numRead)
                  numRead = inFile.Read(buffer, 0, buffer.Length)
                Loop
     
              End Using
     
            End Using
     
          End If
     
        End Using
     
     
     
      End Sub
    merci @ toi encore une fois je ne demande pas un code clé en main.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Si je comprends bien, tu veux une archive composé d'un dossier contenant des fichiers. Est-ce bien cela?
    Si oui, dans ta méthode compression, tu prends en paramètre un FileInfo, qui ne prend en compte comme son nom l'indique que les fichiers, contrairement au DirectoryInfo.
    Après, je ne vois pas tout le code source, peut être que tu l'as déjà envisagé.

    As-tu pensé à ce cas de figure?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Pas de soucis !
    Ce que je te dis dans mon post précédent ne sont que des conseils, dans le but d'obtenir un meilleur soutient sur ce forum mais également d'une façon plus générale. Perso chaque projet, sous projet, fonctionnalités, problématique .. est décomposé pour isoler les points techniques et surtout pour respecter la règle de responsabilité unique, chaque classe ne doit avoir qu'une responsabilité, chaque méthode/fonction ne doit faire qu'une est une seule chose... etc.
    De plus il faut un problème pour pouvoir le résoudre, par exemple là je n'ai toujours pas ton problème, dans le sens ou tu me dis que tu n'arrives pas à zipper un dossier ! Mais que tu arrives à zipper un fichier ! et tu me donne le code de zippe d'un fichier, qui fonctionne donc ! Moi j'aurais préféré avoir le code qui marche pas, ou ce que tu as commencé mais qui n'est pas complet parce qu'il ne manque un mot de langage oui je ne sais quoi... Très franchement je ne doute pas une seconde de ton implication, de ton travaille toussa toussa, mais je voudrais juste de faire remarquer que tu ne nous facilité pas le travaille... et que donc beaucoup doivent passer leur chemin.

    Bref pour revenir au zip d'un dossier tu as tout dans le lien que je t'ai donné plus haut (c'est du c# mais pas très compliqué ).
    Il y a une méthode pour zipper un fichier et une pour zipper un dossier, et tu remarqueras que la fonction de zippe du dossier appel celle de zippe du fichier.

    Je te laisse regarder et nous dire ce qui te bloque.
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  8. #8
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut
    bonjour la roume

    Si je comprends bien, tu veux une archive composé d'un dossier contenant des fichiers. Est-ce bien cela?
    @ Beowolf oui c'est le cas et c'est ce que je souhaite, archiver un dossier contenant soit des sous dossier, soit des fichiers.

    merci @ toi

Discussions similaires

  1. [VB]Parcourir un dossier
    Par lvldia dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/05/2006, 16h28
  2. Parcourir un dossier
    Par badrogi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/04/2006, 17h49
  3. Parcourir un dossier distant et lister ses fichiers
    Par Maximus32 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 22/02/2006, 14h06
  4. Comment parcourir les dossiers situé dans le client
    Par etarip dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2005, 10h16
  5. parcourir un dossier sur un serveur ftp distant
    Par progima dans le forum MFC
    Réponses: 1
    Dernier message: 07/10/2005, 16h47

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