#include '_FileCopyEx.au3'

;===============================================================================
;
; Function Name:   _FileCopyEx($aSourceFiles, $aDestDir[, $iFlag][, $sTitle][, $hParent])
; Description:     Kopiert alle Dateien aus dem Array in das Zielverzeichnis (mit Fortschrittsanzeige)
; Parameter(s):    $aSourceFiles = ein Array mit den Quelldateien (relative Pfade erlaubt)
;                  $aDestDir = ein Array mit den Zielverzeichnissen (für jede Quelldatei das entsprechende Zielverzeichnis)
;                  $iFlag = kann folgende Werte enthalten (auch kombiniert):
;                         0 = kein überschreiben einer existierenden Zieldatei (Standardwert)
;                         1 = überschreiben einer existierenden Zieldatei
;                         2 = die Datums- und Zeitinformationen der Quelldateien werden auf die Zieldateien kopiert
;                         4 = wenn Kopiervorgang beendet, warten bis der Anwender auf [Ok] klickt
;                         8 = erstelle Zielverzeichnis, wenn es noch nicht existiert
;                        16 = erstelle ein Log-String
;                  $sTitle = ein Text für die Titelzeile der Gui
;                  $hParent = das Handle zur "Eltern"-Gui (falls vorhanden); das Kopierfenster wird dann ein "Kind" davon
; Return Value(s): zurückgegeben wird ein Log-String (wenn Flag 16 gesetzt ist) mit Informationen zum Kopiervorgang jeder Datei
;                  und wenn ein Fehler aufgetreten ist, dann mit Hinweis auf den Fehler
;
;                  @error kann folgende Werte annehmen (Kombinationen möglich, BitOr):
;                         0 = kein Fehler aufgetreten, alle Dateien wurden korrekt kopiert
;                         1 = das Array mit den Quelldateien ist gar kein Array
;                         2 = das Zielverzeichnis enthält einen Leerstring oder existiert nicht (Flag 8 nicht gesetzt)
;                         3 = das Zielverzeichnis konnte nicht erstellt werden (Flag 8 gesetzt)
;                         4 = das angegebene Zielverzeichnis ist gar kein Verzeichnis
;                         8 = Quelldatei existiert nicht (Hinweis zum Fehler im Log-String)
;                        16 = Fehler beim kopieren (Hinweis zum Fehler im Log-String)
;                        32 = Abbruch durch den Anwender (Hinweis zum Fehler im Log-String)
;                        64 = die Dateigröße von Quell- und Zieldatei unterscheiden sich (Hinweis zum Fehler im Log-String)
; Author(s):       "_FileCopyEx" von Oscar (www.autoit.de)
;                  "_GuiCtrlSetPath" von funkey (www.autoit.de)
;                  "_GDIPlus_StripProgressbar" von UEZ (www.autoit.de)
;===============================================================================

Global $sSourceDir = 'c:\Program Files (x86)\AutoIt3\' ; alle Dateien aus diesem Verzeichnis sollen kopiert werden

Global $sDestDir = @ScriptDir & '\temp\' ; die Quelldateien sollen (mit Unterverzeichnissen) in dieses Verzeichnis kopiert werden

Global $aSourceFiles[1], $aDestDir[1]
_FileCopyEx_CreateArrays($sSourceDir, $sDestDir, $aSourceFiles, $aDestDir, '*') ; diese Funktion erstellt die Arrays für _FileCopyEx
If Not @error Then
	Global $sLog = _FileCopyEx($aSourceFiles, $aDestDir, 16 + 8 + 4 + 2 + 1, 'Dateien kopieren...') ; hier erfolgt dann das kopieren
	ConsoleWrite('Fehler: ' & @error & @CR)
;~ 	ConsoleWrite($sLog & @CR)
EndIf

