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

VBScript Discussion :

vérifier que la compression est terminée


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut vérifier que la compression est terminée
    Bonjour,
    j'essaie de compresser un grop répertoire avant de l'envoyer par ftp sur un serveur.
    mon problème : l'envoie se fait avant que le fichier zip ne soit fini.

    j'ai tenté de mettre une boucle d'attente en testant la taille du zip (est-ce que la taille du zip est la même avant et après le délai) mais ça ne fonctionne pas bien (la mise à jour de la taille a pas l'air très précise).

    peut-être pourrais-je me servir de la boite de dialogue de l'avancement de la compression mais je ne sais pas comment l'appeler !
    Quelqu'un peut-il m'aider ?
    merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et tu utilise quoi pour compresser ton fichier ? ( code ?)

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    bonjour bbil,
    j'utilise "createtextfile"

    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
        Set oCTF = oFileSys.CreateTextFile(Destination, True)
        oCTF.Write MyBinary
        oCTF.Close
        Set oCTF = Nothing
     
        Set oApp = CreateObject("Shell.Application")
     
        Set oFolder = oApp.Namespace(Source)
        If Not oFolder Is Nothing Then _
            oApp.Namespace(Destination).CopyHere oFolder.Items
     
        Set oFile = Nothing
        On Error Resume Next
     
        Do While (oFile Is Nothing)
     
            Set oFile = oFileSys.OpenTextFile(Destination, ForAppending, False)
     
            If Err.Number <> 0 Then
                Err.Clear
            End If
        Loop
    mon problème étant que la boucle se finit bien avant que le zip soit effectivement terminé.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    heu...
    C'est tout ton code là ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    non évidemment, ça c'est l'extrait de code pour le zippage.
    j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    While FileLen(Destination) <> taille
            DoEvents
            taille = FileLen(Destination)
            Sleep (1000)
            DoEvents
    Wend
    pour marquer une pause dans le code jusqu'à ce que le fichier zip soit stable en taille (qui aurait du signifier la fin du zippage).

    ensuite je lance ma fonction d'envoie de ftp

    le problème c'est qu'il semblerait que la taille du zip ne change pas toute les seconde même si le zippage n'est pas fini. je pourrais allonger mon temps de pause mais c'est pas très propre comme méthode.
    j'aurais bien aimé pouvoir interrogé l'événement "le zip est fini" mais je sais pas quel est son nom...

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    ce problème est soumis de façon régulière sur ce forum
    ex (au hasard): http://www.developpez.net/forums/d50...toire-fichier/
    ce hack est de toute façon intrinsèquement mal foutu puisque la compression est faite par windows dans un process distinct,
    donc de façon asynchrone et sans possibilité de gérer sa progression
    une seule solution empirique et casse-gueule: définir des sleep en fonction de la taille des fichiers à compresser
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    c'est bien la solution pour laquelle j'ai opté : testé l'évolution de la taille du fichier. Toutefois la compression se faisant effectivement par windows, il y a une barre de progression active. je me disais qu'on pouvait peut-être l'interroger ? ce type d'objet est-il facilement identifiable ?

    si vous avez des idées sur cette question... sinon je mets le tag résolu.

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

Discussions similaires

  1. Vérifier que le programme est ouvert
    Par Loenix dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 14/05/2009, 15h50
  2. [Web Service] Vérifier que SOAPClient s'est bien passé
    Par Delphi-ne dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/09/2008, 02h19
  3. Réponses: 1
    Dernier message: 08/08/2007, 18h07
  4. vérifier que une form est ouverte
    Par youcef_b_dz dans le forum Delphi
    Réponses: 2
    Dernier message: 23/08/2006, 17h41
  5. [Image] détecter que le chargement est terminé
    Par Pascmar dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/07/2004, 19h12

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