kataragon
Messages postés5Date d'inscriptiondimanche 5 septembre 2004StatutMembreDernière intervention 5 septembre 2004
-
5 sept. 2004 à 17:22
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
5 sept. 2004 à 18:09
J'aimerai insérer une barre de progression dans le code ci-dessous pour voir l'avancement de la copie des fichiers.
Merci kataragon
Private Sub OUI_Click()
'# Repertoires source et destination
Dim Source As String: Source = "E:\source"
Dim Dest As String: Dest = CurDir$ & "\destination"
'# Fichier *.*
Dim FileName As String
FileName = Dir$(Source & "*.*", 1)
'# Pour tous les fichiers du repertoire source
While FileName <> ""
'# Une erreur surviens si le fichier de Destination n'existe pas
'# On le copie donc
On Error Resume Next
If FileLen(Dest & FileName) < FileLen(Source & FileName) Then
FileCopy Source & FileName, Dest & FileName
End If
'# Fichier suivant
FileName = Dir
Wend
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 5 sept. 2004 à 17:31
Pour utiliser une progresse bar de 0 a 100% il faut connaitre d'avance la valeur ninimal et maximal ! dans ton code la valeur maximal est inconnu. Pour faire ce que tu veux recupere en premier la liste des fichiers puis copie ensuite comme cela tu aura le nombre de fichier a copier.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 5 sept. 2004 à 18:07
non tu retape ton code de maniere a ce que chaque fichier soit stocker dans une collection par exemple :
dim Col as new collection
FileName = Dir$(Source & "*.*", 1)
Do Until FileName = ""
If FileLen(Dest & FileName) < FileLen(Source & FileName) Then
Col.Add Source & FileName
End If
FileName = Dir
Wend
puis ensuite tu parcour la collection et tu fait ta copie
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 sept. 2004 à 18:09
Pas la peine, tu fais une boucle sur tout tes fichiers, avec un :
While Fic <> ""
iNbrFichier = iNbrFichier+1
Fic = dir
Wend
Comme cà, à la fin de ta boucle, tu a le nombre de fichier => le maximum pour ton progress bar.
Mais si tu veux une progression plus significative lors de la copie d'un fichier, je te conseille d'aller voir ma source nommée Défilement copie dossier : tu verra comment prendre en compte la taille de fichiers lors d'une copie. (car avec ta méthode, si tu a un fichier de 100 Mo, et 99 fichiers de 1 Ko, ca risque de faire une progression bizare...)