Bonjour,
Je voudrais copier un répertoire entier vers un autre (CopyDirTree) mais j'aimerai que s'affiche la progression dans un progressbar.
J'ai vainement cherché le code.
Qui a une solution ?
Merci.
Bonjour,
Je voudrais copier un répertoire entier vers un autre (CopyDirTree) mais j'aimerai que s'affiche la progression dans un progressbar.
J'ai vainement cherché le code.
Qui a une solution ?
Merci.
Sous Windows, MoveFileWithProgressA.
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Là n'est pas la question : il faut savoir quel est l'OS cible.
Pour du seul Windows, faire appel aux fonctions de son API est judicieux, d'où mon lien. On doit pouvoir aussi faire un ShellExec pour Copy qui affichera la boîte de progression de Windows.
Pour une solution multiplateforme, soit il existe une solution Lazarus, soit il suffit de balayer le répertoire en stockant la taille et le nombre des fichiers, puis de boucler sur la copie en faisant progresser à chaque fichier ou lot de x fichiers un TProgressBar soi-même (ne pas oublier un Application.ProcessMessages ensuite pour lui permettre de se dessiner à sa nouvelle position).
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Bonjour,
peut-être que tu devrais étudier le logiciel DoubleCommander, fait avec Lazarus et qui l'implémente. Ci dessous la version Linux mais il y a une version Windows et Mac :
![]()
Salut pour afficher une progression tu dois d'abord connaitre le nombre total de répertoires ou fichiers à copier ensuite c'est facile. Tu sais calculer un pourcentage ? Non ? Alors une petite règle de trois et hop
Exemple
En pourcentage
ProgressBar.Min := 0
ProgressBar.Max := 100
Pourcentage 100 X Elements Total Copiés
X := (Nombre_d_element_copiés * 100) div Nombre_total_d_élément_a_copier
ProgressBar.Position := X
Malheureusement CopyDirTree ne te permet pas de connaitre le nombre de fichiers ou de répertoires à l'avance. L plus simple c'est de mettre la propriété "Style" sur "pbstMarquee"
Voir aussi cette discussion sur la copie de dossier
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
Tu ne l'as pas préciser.
Tu devrais d'abord commencer par apprendre à utilisé l'EDI, placer des composants, definir les propriétés via l'inspecteur d'objet etc..... Cela serai déjà un bon début plutôt que de foncer tête baisser. Tu ne vas pas te jeter à l'eau si tu ne sait pas nager(à moins que tu ai pied
)
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
Partager