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 :

Classe ZipFile cherche à communiquer


Sujet :

C#

  1. #1
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 010
    Points
    2 010
    Par défaut Classe ZipFile cherche à communiquer
    Bonjour

    J'utilise la classe zipfile pour zipper/dezipper avec une grande facilité des fichiers ou des répertoires
    http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx

    Mon soucis est que quelquefois les fichiers sont gros et il faut donc du temps pour zipper/dezipper or je n'ai pas trouvé comment gérer un avancement de l'opération. D'un point de vue ergonomie ce n'est pas top, l'utilisateur ne sait pas que l’application fait quelque chose et encore moins combien de temps cela va durer.

    Comment puis je faire communiquer un peu Zipfile sur son état d'avancement ?

    merci par avance
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  2. #2
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    je n'ai jamais utilisé cette classe mais ça ne devrai pas tarder, néanmoins c'est la même chose que le transfère de fichier ou un téléchargement

    tu as crée un thread pour gérer ton probleme ?
    dans thread.inPrograsse tu peut gérer le pourcentage (vue pour l'ihm) en fonction de la taille du zip

    petite question les méthodes de la classe sont bloquantes ?

    Cordialement

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    cette classe n'a pas l'air d'avoir ce qu'il faut pour connaitre l'avancement

    donc si tu le veux vraiment il faut utiliser une autre classe (il y en a d'autres dans le framework je pense)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 010
    Points
    2 010
    Par défaut
    Citation Envoyé par ranzoken Voir le message
    tu as crée un thread pour gérer ton probleme
    Non, ne sachant pas comment gérer un avancement ou simili de " je fais un truc et non, je ne suis pas planté !"
    Citation Envoyé par ranzoken Voir le message
    dans thread.inPrograsse tu peut gérer le pourcentage (vue pour l'ihm) en fonction de la taille du zip
    en fonction de la taille du zip ? je ne comprends pas l'astuce...
    Citation Envoyé par ranzoken Voir le message
    petite question les méthodes de la classe sont bloquantes ?
    quand la méthode s’exécute le reste de l'application n'est plus fonctionnel.

    Citation Envoyé par Pol63
    donc si tu le veux vraiment il faut utiliser une autre classe (il y en a d'autres dans le framework je pense)
    j'en avais essayé plusieurs et ZipFile est redoutable de simplicité de mise en œuvre et,contrairement aux autres, est capable de faire toutes les config dont j'ai besoin (répertoire, fichier etc etc)
    Ce n'est pas vraiment un avancement que je veux, c'est surtout que l'utilisateur ne soit pas comme un idiot a se demander si le clic qu'il vient de faire a fait quelque chose, savoir que l'appli a pris en compte sa commande et n'est pas plantée en gros.

    Merci
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en effet tout ce qui prend du temps freeze l'appli
    pour éviter cela il suffit de déporter le traitement sur un autre thread, tu peux utiliser le composant backgroundworker pour ca qui est assez simple

    ou sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private sub button_click()
      dim th as new system.threading.thread(addressof zip)
      th.start
    end sub
     
    private sub sub zip
      ' ton traitement ici
    end sub
    il y a des sites qui traduisent le vb.net en c# si ce n'est pas compréhensible ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 010
    Points
    2 010
    Par défaut
    que cela bloque l'appli n'est pas fondamentalement génant puisque de toute manière l'utilisateur ne peut/n'a rien a faire tant que le zip n'a pas fait son job.le seul soucis est que l'opérateur ne puisse pas se dire "mince ma commande n'a pas marché" ou mince l'appli à planté.
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 010
    Points
    2 010
    Par défaut
    Bonjour

    Je ne comprends pas bien ces exemples, ça parle de ZipFile Quelquechose , on parlerait donc bien de cette même classe ZipFile mais la méthode Read n’existe pas dans cette classe

    PS : je comprends vite mais il faut m'expliquer très doucement des fois...

    Merci
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    bah tu prends la librairie dotNetZip

    et si tu vas en bas de cette page :

    Examples

    tu pourras voir comment ils font pour la progression de l'extraction..
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 79
    Points : 118
    Points
    118
    Par défaut
    Salut !

    Tu n'auras pas le choix de passer par un thread incluant les objets/classes de ZIP (voir aussi SharpZipLib qui est très bien). Depuis
    ce thread, tu pourras créer des events (voir aussi delegate, EventHandler) qui communiques par messages avec une Form ou autre chose.

    http://msdn.microsoft.com/en-us/libr...=vs.71%29.aspx

    Le truc, c'est d'aboner une Form à un event pour "chopper" le message.

    Phil

  11. #11
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    Pour continuer a utiliser System.IO.Compression et obtenir une progression, il faut compresser fichier par fichier :
    - Compter le nombre de fichiers du répertoire (et des sous répertoires ?)
    - Boucler sur chaque fichier pour le compresser , incrémenter le compteur et communiquer la progression via un événement

    PS : cela ne marche bien sur pas si il n'y a q'un seul très gros fichier a zipper.

  12. #12
    Membre du Club
    Inscrit en
    Février 2013
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 34
    Points : 43
    Points
    43
    Par défaut
    Pour un très gros fichier a dezipper il y a une solution pour avoir un visuel sur le taux d'avancement.
    Il te faut encapsuler ton filestream dans un autre stream qui va estimer le temps restant avec un ratio position_stream/taille_stream.ça restera une estimation ..

Discussions similaires

  1. Problème d'accès à la classe ZipFile
    Par gilles99 dans le forum Framework .NET
    Réponses: 5
    Dernier message: 25/04/2014, 15h17
  2. Réponses: 5
    Dernier message: 29/06/2006, 07h47
  3. débutant cherche classe pour lire un wav simplement
    Par dimitrimm972 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 27/05/2006, 17h33
  4. Réponses: 2
    Dernier message: 17/03/2006, 09h26
  5. [Système][Class-Path]cherche aide sous java pour fedoracore ou linux
    Par mickey hollywood dans le forum Général Java
    Réponses: 4
    Dernier message: 29/03/2005, 01h13

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