Taille des fichiers

MGk42 Messages postés 17 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 25 février 2013 - 5 févr. 2009 à 14:11
MGk42 Messages postés 17 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 25 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 !

Merci d'avance,

GM

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 févr. 2009 à 14:41
Salut
Problème incomplet : Dis nous comment tu fais actuellement ta copie de fichier

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)
0
MGk42 Messages postés 17 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 25 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 !

Encore 1 fois, Merci

GM
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
MGk42 Messages postés 17 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 25 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..

Cordialement,

GM
0
Rejoignez-nous