#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
$gui = GUICreate("CopyIt 1.0 by PrideRage", 247, 400, -1, -1)
$Menu = GUICtrlCreateMenu("Hilfe")
$help = GUICtrlCreateMenuItem("Hilfe", $Menu)
$nfo = GUICtrlCreateMenuItem("Info", $Menu)
$src = GUICtrlCreateButton("Quellordner", 24, 24, 129, 49, $WS_GROUP)
$tar = GUICtrlCreateButton("Zielordner", 24, 96, 129, 49, $WS_GROUP)
$extensions = GUICtrlCreateInput("", 24, 200, 217, 21)
$extLabel = GUICtrlCreateLabel("Dateiendung(en) (Mit Semikolon separieren)", 24, 176, 210, 17)
$copy = GUICtrlCreateButton("Copy!", 24, 256, 129, 57, $WS_GROUP)
GUISetState(@SW_SHOW)

;Variables
Global $Source, $Target, $Extension, $BackUpPath
;End Variables

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $help
			MsgBox(64, "Hilfe", "Der Quellordner ist der Ordner, aus dem die Dateien kopiert werden sollen. Der Zielordner ist der Ordner, in den die Dateien kopiert werden sollen. Eine Dateiendung muss mit *. anfangen. Falls man mehrere benutzen will, müssen sie mit einem Semikolon getrennt werden. Bsp.: *.jpg;*.ogg   Viel Spass!")
			MsgBox(64, "Weitere Hilfe", "Falls die Datei im Zielordner existiert, werden die zu kopierenden Dateien in einen Backup Ordner kopiert, den Originaldateien passiert nichts. Versprochen")
		Case $nfo
			MsgBox(64, "Info", "Das Programm wurde von PrideRage entwickelt. Kein Source-Code wurde geklaut. Das Programm kopiert nur Dateien mit bestimmten Dateiendungen. Während der entwicklung wurden 0 Personen verletzt ^^   Viel Spass!")
		Case $src
			$Source = FileSelectFolder("Quellordner wählen", "")
		Case $tar
			$Target = FileSelectFolder("Zielordner wählen", "")
			$BackUpPath = $Target & "\Backup"
		Case $copy
			_Copy()
	EndSwitch
WEnd

Func _Copy()
	DirCreate($BackUpPath)
	$Extension = GUICtrlRead($extensions)
	Local $srcList = _FileListToArray($Source, $Extension, 1)
	;Local $tarList = _FileListToArray($Target, $Extension, 1)
	For $i = 1 To UBound($srcList)
		If $i >= UBound($srcList) Then ExitLoop
		If Not FileExists($Target & "\" & $srcList[$i]) Then
			FileCopy($Source & "\" & $srcList[$i], $Target & "\" & $srcList[$i])
		Else
			_BackCopy($Source & "\" & $srcList[$i], $srcList[$i])
		EndIf
	Next
	MsgBox(0, "Fertig", "Alle Dateien wurden kopiert.")
EndFunc

Func _BackCopy($Parametro, $Nombre)
	FileCopy($Parametro, $BackUpPath & "\" & $Nombre & ".dov") ;Verwirrt wegen Dateiendung ? Siehe http://www.fileinfo.com/extension/dov
EndFunc