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

MFC Discussion :

Déterminer la taille d'un fichier ZIP et modifier la progress bar


Sujet :

MFC

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Points : 91
    Points
    91
    Par défaut Déterminer la taille d'un fichier ZIP et modifier la progress bar
    Bonjour,

    dans mon projet j'ai une méthode qui permet de compresser un dossier.
    et je dois faire apparaitre la progression de cette compression dans une progress bar.

    comment je compresse:
    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
     
    SetCurrentDirectory("C:\\temp");
     
     
    	SHELLEXECUTEINFO sei; 
    	ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO)); 
    	sei.cbSize = sizeof(SHELLEXECUTEINFO ); 
     
    	sei.lpFile = "zip.exe"; 
    	sei.fMask = SEE_MASK_NOCLOSEPROCESS; 
    	sei.lpVerb = TEXT("open"); 
    	sei.nShow = SW_HIDE; 
     
    	CString aa =" -r "+prestation+ ".zip \"program files";
    	sei.lpParameters = aa;
    	if(ShellExecuteEx(&sei)) 
    	{ 
    		WaitForSingleObject(sei.hProcess, INFINITE); 
    	}
    	::CloseHandle(sei.hProcess);
    je voudrai savoir comment je peux faire pour que ma progress bar représente la progression de ma compression.
    mon idée: calculer la taille du dossier s'il était compressé, et avoir la taille du fichier compressé qui est en train d'etre créé. et au fur et a mesure que la faille de fichier grossit ma progress bar se rempli...

    cependant:
    -comment je peux faire pour trouver la taille présumé du dossier s'il était compressé?
    - comment je peux faie pour trouver la taille du fichier compressé qui est en train d'être créé et cela "au cours du temp"... est ce qu'il faut un timer ou... est-ce qu'il existe une methode précise??

    pour la taille des fichier.. j'ai trouvé les méthode "getfilesize" et "getcompressedfilesize".

    mais je comprends pas les parametres.. ni ce que fait la méthode "getcompressedfilesize"

    pouvez-vous m'aider s'il vous plait c'est vraiment important j'ai plus beaucoup de temps pour terminé mon projet

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Ce que tu essayes de faire ne peut fonctionner...
    mettre la progression d'une compression dans ton programme alors que celle-ci est lancée par un shellexecute me semble plus qu'aléatoire.
    Sachant en plus que windows ne flush pas le fichier en temps réel, et en admettant que tu y arrives, tu risques de passer de 0 a 100% d'un seul coup.
    Il y a des bibliothèques pour faire ça, comme ziparchive qui permet de gérer la compression/décompression de fichiers.
    la tu pourras mettre une progression du traitement.

  3. #3
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    je dirais même qu'il serait plus judicieux que ta barre représente la progression dans le fichier source : taille_initiale_des_données_déjà_compressées/taille_des_données_totales
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

  4. #4
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par farscape Voir le message
    Ce que tu essayes de faire ne peut fonctionner...
    mettre la progression d'une compression dans ton programme alors que celle-ci est lancée par un shellexecute me semble plus qu'aléatoire.
    Sachant en plus que windows ne flush pas le fichier en temps réel, et en admettant que tu y arrives, tu risques de passer de 0 a 100% d'un seul coup.
    Il y a des bibliothèques pour faire ça, comme ziparchive qui permet de gérer la compression/décompression de fichiers.
    la tu pourras mettre une progression du traitement.

    le probleme est que je ne dispose d'aucune bibliothèque. c'est pour ca que j'ai fini par utiliser le shellExecute. (oui je sais il suffirai de les telecharger, mais ça m'ait impossible avec mon PC et pour d'autre raison).

    donc voila...
    bon avec mon tuteur.. on a fait une progression au cours du temps (ouai on a fait de la bidouille certe...)

Discussions similaires

  1. Déterminer la taille d'un fichier pour le supprimer
    Par ventures dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 10/09/2010, 18h19
  2. Réponses: 2
    Dernier message: 09/07/2009, 16h11
  3. Taille d'un fichier Zip
    Par danielhagnoul dans le forum Windows XP
    Réponses: 3
    Dernier message: 06/05/2009, 20h47
  4. ZipMaster : Taille Maxi d'un Fichier ZIP
    Par Cyrille36 dans le forum Langage
    Réponses: 3
    Dernier message: 24/11/2008, 12h04
  5. Déterminer la taille d'un fichier
    Par ricololo dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/08/2008, 10h36

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