MGk42
Messages postés17Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention25 février 2013
-
5 févr. 2009 à 14:11
MGk42
Messages postés17Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention25 février 2013
-
9 févr. 2009 à 08:37
Bonjour,
Problème posé: Evaluer la taille recopiée (ou restante), d'un fichier en cours de copie.
Jusqu'à maintenant je n'ai pu trouver cette taille, uniquement que lorsque la copie est terminée,
ce qui fait que les progressbar sont gelés et que l'utilisateur flippe, pendant le chargement
d'un gros fichier...
Si quelqu'un a 1 méthode ou 1 bout de code !
MGk42
Messages postés17Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention25 février 2013 5 févr. 2009 à 16:49
Merci Jack de l'intéret que tu portes à ma demande.
En fait, je déroule les arborescences, par des procedures récursives et copie les fichiers par My.Computer.FileSystem.CopyFile().
Au point de vue temps d'exécution, ça parait tout à fait honnête, mais si une autre méthode existe, permettant de connaitre la taille copiée, je suis preneur !
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 févr. 2009 à 08:39
Re
Tu parles de récursivité : Tu copies donc plusieurs fichiers ?
Est-ce que tu parles de connaitre la quantité de données copiées lors du transfert d'UN seul gros fichier ou bien du cumul de la taille de chaque fichier "standards" dans une boucle ?
Si tu parles de copie de plusieurs fichiers, utilises-tu une syntaxe avec * ou bien précises-tu le nom de chaque fichier, l'un après l'autre ?
Les méthodes peuvent être différentes.
Copie d'un seul gros fichier :
As-tu regardé l'option ShowUI de la commande CopyFile ?
En mettant AllDialogs dans ce paramètre, la fenêtre de progression gérée par le système.
Il me semble que cette fenêtre de progression ne s'affiche que si la copie dure plus de 2 secondes (pas testé)
Copie de plusieurs fichiers :
Avant la copie, calculer la taille totale des tous les fichiers --> Max de la ProgressBar
Au fur et à mesure de la copie, incrémenter un compteur avec la taille du fichier qui vient d'être copié --> Value
+ Penser à mettre un Application.DoEvents pour que la ProgressBar ait le temps de rafraichir entre chaque copie
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
MGk42
Messages postés17Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention25 février 2013 9 févr. 2009 à 08:37
Bonjour Jack,
Il y a quelque chose qui m'échappe, ou c'est 1 bug à microsoft. Rien y fait. Que ce soit la taille du disk (ou restante), la taille des fichiers, elles ne semblent pas être accessibles lors de la copie, même en faisant 2 ou 3 threads...
En ce moment, mon timing ne m'a pas permis de faire des essais poussés.
Je te remercie encore 1 fois et te tiendrai au courant, pour de nouveaux essais..