[..] Copie dossier + Barre de progression

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
quirionais
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 10 juin 2011 11:09
Status : Hors ligne

[..] Copie dossier + Barre de progression

#1

Message par quirionais »

Bonjour tout le monde !
Je suis actuellement en fin de stage en entreprise et mon dernier objectif est de coder un petit soft de sauvegarde pour un utilisateur X.
Je vous passe les détails car ça n'a aucune importance.
Tout fonctionne correctement mais j'aurais aimé voir apparaître une barre de progression pendant la copie ( CD => Serveur ) qui est assez longue.
Vous allez me dire que le sujet a déjà été présenté (ce qui est vrai) mais je n'arrive pas à intégrer ça dans ma fonction.
Voila ma fonction (simplifié pour l'exemple) :

Code : Tout sélectionner

Func _copy()

        If FileExists($dirFolder) Then
            MsgBox(0, "", "La sauvegarde a déjà été effectué !")
            Return 1
        Else
            _RunDOS ("xcopy.exe " & $source & " " & $destination & " /e /c /h /r /k /y /d /i")
            _RunDOS ("xcopy.exe " & $source1 & " " & $destination1 & " /e /c /h /r /k /y /d /i")
            _RunDOS ("xcopy.exe " & $source2 & " " & $destination2 & " /e /c /h /r /k /y /d /i")
        EndIf

        Return 1
    EndFunc
Merci d'avance
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#2

Message par zeshrek »

Bon bin déjà, ca sera pas possible en l'état.
Tu utilises xcopy qui est une fonction DOS. Pourquoi ne pas utiliser une fonction de copie d'autoit comme FileCopy () ou DirCopy() ?

Et là ca te permettrait assez facilement de faire ta barre de progression. Si tes sources sont des répertoires, un petit coup de _FileListToArray pour avoir la liste des fichiers a copier, et donc entre chaque copie tu fais progresser ta barre
Si vis pacem para bellum
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 405
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#3

Message par scorp84 »

Bonjour quirionais,

Voici un exemple de copie avec barre de progression :

http://www.autoitscript.com/forum/topic ... ntry600777

En espérant voir pu t'aider.

Amicalement.

BM
quirionais
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 10 juin 2011 11:09
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#4

Message par quirionais »

Merci mais cet exemple ne copie pas un répertoire entier et je ne sais pas comment l'adapter dans ce but.
Je sais, je suis mauvais mais je suis technicien système et réseau en théorie :p

J'ai rectifier mon code comme ça pour le moment (avec DirCopy):

Code : Tout sélectionner

    Func _copy()
        If FileExists($dirFolder) Then
            MsgBox(0, "", "La sauvegarde a déjà été effectué !")
            Return 1
        Else
            DirCopy ($CDFolder, $dirFolder, 1)
            DirCopy ($sourceRSI, $s_dataRSI, 1)
            DirCopy ($sourceMSA, $s_dataMSA , 1)
        EndIf
        Return 1
    EndFunc
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#5

Message par zeshrek »

Si tu ne copies pas un répertoire entier, pourquoi tu utilises dircopy ? A ce moment là, c'est filecopy qu'il faut utiliser...
Si vis pacem para bellum
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#6

Message par mikell »

Ben il va bien le script que t'indique scorp84 (tu peux même le simplifier)
Si tu copies des répertoires, tu utilises DirCopy() et DirGetSize()
Avec DirGetSize() tu enregistres la taille du répertoire copié, la taille du répertoire à copier, tu divises et tu envoies le rapport à ta progressbar
à utiliser dans une boucle

véri izi :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Copie dossier + Barre de progression

#7

Message par TopXm »

Bonjour,

J'ai fait un bout de code pour sauvegarder le dossier Mes Documents d'un membre de la famille, si ça peut aider.

NB : Ne gère pas les sous-dossiers
► Afficher le texteBout de code
Répondre