Taille des fichiers

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

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

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

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