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

VB 6 et antérieur Discussion :

vb6 Compression 7z puis supression dossier


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Points : 148
    Points
    148
    Par défaut vb6 Compression 7z puis supression dossier
    Bonjour,

    J'ai un programme qui utilisé XZip mais par nécessité, j'ai du changer la zone de compression par 7zip, pour cela je lance une ligne d'instruction du type , cela marche bien mais l'ancien programme (avec XZip) prévoie des méthodes pour supprimer les fichiers ainsi que du dossier non compressé à la fin de la compression donc j'ai du remplacer cette partie aussi par du code du genre et Mon souci est que mon programme supprime le dossier avant d'avoir fini le zippage du coup je me retrouve avec un fichier zip vide.
    J'ai pensé a DoEvents mais j'ai l'impression que sa marche pas, sinon je suis ouvert à vos suggestions.

    Perso, je serais assez fan d'un boucle While avec un mini sleep à l’intérieur tant que le zippage n'est pas fini mais je sais pas comment on vérifie si le zippage est fini ou pas.

    Merci d'avance pour vos solutions.

    Cordialement,
    Tomy.

    PS: Pour l'instant j'ai pas la possibilité de tester ni de vous montrer mon code car le poste sur le quelle je développe est indisponible.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Points : 148
    Points
    148
    Par défaut
    Bonjour,

    Normalement c'est résolu mais j'attends la confirmation d'un sénior car je suis pas sur que la méthode que j'ai utilisé est la plus fiable. Je m'explique, j'ai ajouté une boucle While avec un mini sleep tant que le fichier zip est ouvert hors je connais pas bien le fonctionnement de 7z, j'ai peur qu'a long terme, je me retrouve avec des fichiers manquants si 7z lui prends l'envie d'ouvrir et fermer le fichier zip a volonté avant la fin de l'archivage.

    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
    'TFH - 20140912 - Function pour archiver un dossier en .zip
    Private Function ArchiveToZip(pathToArchive As String) As Long
        Dim ArgType As String
     
        ArgType = "a -y -tzip"
        ArchiveToZip = Shell("C:\Program Files (x86)\7-Zip\7z.exe" + " " + ArgType + " " + pathToArchive + " " + pathToArchive)
     
        'Sécurité pour s'assurer que le fichier est bien zipper car suppression du dossier juste apres cette function
        While IsFileOpen(pathToArchive + ".zip")
            DoEvents: Sleep 20
        Wend
    End Function
     
     
    'TFH - 20140916 - Function pour savoir si un fichier est ouvert ou pas
    Function IsFileOpen(ByVal strFic As String) As Boolean
        Dim fic As Integer
        On Error Resume Next
     
        fic = FreeFile()
        Open strFic For Input Access Read Lock Read Write As fic
     
        If Err.Number = 0 Then
            IsFileOpen = False
            Close fic
        Else
            IsFileOpen = True
        End If
    End Function
    J'ai pensé aussi a une sécurité supplémentaire du genre comparer le nombre de fichier dans le zip et dans le répertoire mais je sais pas si c'est vraiment conseillé de farfouillé dans un fichier zip qu'on a pas encore fini d'archiver. Ou alors je pourrais calculer le nombre de fichier après ma première boucle While.

    Merci beaucoup a celui qui a réalisé cette page qui est très utile :
    http://vb.developpez.com/faq/?page=Fichiers

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut

    Peut être que l'ouverture de 7z.exe pourrait se faire avec La méthode Run de l'objet WshShell, en effet son 3éme paramètre permet d'attendre la fin de l'exécution du programme avant de continuer le code.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. [Débutant][C#] Compression de dossier de manière récurssive
    Par LordProgz dans le forum Windows Forms
    Réponses: 10
    Dernier message: 12/01/2010, 13h55
  2. Réponses: 22
    Dernier message: 29/08/2006, 16h29
  3. [VB6]savoir si un fichier/dossier existe
    Par fourgeaud dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/06/2006, 12h07
  4. [VB6] Compression Base Access
    Par pcvesoul dans le forum Access
    Réponses: 3
    Dernier message: 05/01/2006, 09h38
  5. [Zip] Compression ZIP d'un dossier
    Par alex.hitman dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 27/10/2005, 23h16

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