Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#Include <Array.au3>
;Recup du chemin de Mes Documents
$FldDef = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Personal")
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Folder Save", 253, 101, 192, 124)
Global $Label1 = GUICtrlCreateLabel("Source", 8, 11, 38, 17)
Global $FolderIn = GUICtrlCreateInput($FldDef, 56, 8, 193, 21)
Global $Label2 = GUICtrlCreateLabel("Cible", 8, 38, 27, 17)
Global $FolderOut = GUICtrlCreateInput("D:\SaveDocuments", 56, 35, 193, 21)
Global $BtCopy = GUICtrlCreateButton("Copy", 176, 64, 73, 17, $WS_GROUP)
Global $PgBar = GUICtrlCreateProgress(0, 82, 249, 17)
GUICtrlSetState($PgBar, $GUI_HIDE)
Global $FileCopy = GUICtrlCreateLabel("", 0, 64, 341, 20)
GUICtrlSetState($FileCopy, $GUI_HIDE)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $Nbfiles = 0
Global $Stop = False
HotKeySet("{ESC}", "BruteStop")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BtCopy
If SaveFolder(GUICtrlRead($FolderIn), GUICtrlRead($FolderOut)) Then
msgbox(0, "Folder Copy ...", $Nbfiles & " Fichier(s) copié(s) ")
EndIf
EndSwitch
WEnd
Func SaveFolder($FldIn, $FldOut)
If Not FileExists($FldIn) Then
MsgBox(0, "Folder Copy ...", "Dossier " & $FldIn & " inexistant ... pffff ..... ")
Return False
EndIf
If Not FileExists($FldOut) Then DirCreate($FldOut)
GUICtrlSetState($PgBar, $GUI_SHOW)
GUICtrlSetState($FileCopy, $GUI_SHOW)
GUICtrlSetData($PgBar, 0)
$Files = _FileListToArray($FldIn, "*.*")
For $I = 1 to $Files[0]
If $Stop Then ExitLoop
GUICtrlSetData($FileCopy, "Copie de " & $Files[$I])
FileCopy($Files[$I], $FldOut & "\" & $Files[$I], 1)
$Nbfiles+=1
GuiCtrlSetData($PgBar, ($I * 100) / $Files[0])
Sleep(100)
Next
GUICtrlSetState($PgBar, $GUI_HIDE)
GUICtrlSetState($FileCopy, $GUI_HIDE)
Return True
EndFunc
Func BruteStop()
If MsgBox(4, "Folder Copy ..." , "Confirmer l'arret de la copie ?") = 6 Then $Stop = True
EndFunc