
#include <MsgBoxConstants.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <Constants.au3>
#include <_GetFilesFolder_Rekursiv.au3>
#include <FileConstants.au3>
#include <String.au3>

Global $Path, $Savefile, $sFileSelectFolder, $sFileSaveDialog, $GUI, $buttonselcetfolder
Global $msg, $buttonselcetfolderscript, $sFileSelectFolderscript, $Scriptfolder, $buttonselcetfilescript
Global $foldertext,$filetext

_GUI()

Func _GUI()

$GUI = GUICreate("FileInstall",200,200)

$buttonselcetfolder = GUICtrlCreateButton("Ordner auswählen!", 48, 15, 120, 24)
$foldertext = GUICtrlCreateLabel("", 2, 50, 200, 30, $ES_LEFT)

$buttonselcetfilesave = GUICtrlCreateButton("Speicherort wählen!", 48, 75, 120, 24)
$filetext = GUICtrlCreateLabel("", 2, 110, 200, 30, $ES_LEFT)

$buttonstart = GUICtrlCreateButton("FileInstall.txt Erstellen", 40, 135, 140, 24)

GUICtrlCreateLabel("Made By TheDeath24", 60, 180, 130, 25)

GUISetState()

While 1

$msg = GUIGetMsg()

Switch $msg
   Case $buttonselcetfolder
	  $sFileSelectFolder = FileSelectFolder("Wähle ein Ordner aus!", "")
	  GUICtrlSetData($foldertext, $sFileSelectFolder)

   Case $buttonselcetfilesave
	  $sFileSaveDialog = FileSaveDialog("Wähle den Speicherort aus!", @ScriptFullPath, "(*.txt)", $FD_PATHMUSTEXIST)
	  GUICtrlSetData($filetext, $sFileSaveDialog)

   Case $buttonstart
	  _writefile($sFileSelectFolder, $sFileSaveDialog)

   Case -3
	  Exit

EndSwitch
WEnd

EndFunc


Func _writefile($Path, $Savefile)

if not $sFileSaveDialog=0 and not $sFileSelectFolder=0 Then

$array = _GetFilesFolder_Rekursiv($Path, '*', 0)

For $i = 1 To $array[0]
   $newpath=StringReplace ( $array[$i], $Path, "" , 0, 2)
   $newdir=StringSplit($newpath, "\")
   if IsArray($newdir) Then
	  $len=StringLen ($newdir[UBound($newdir)-1])
	  $newstring=StringTrimRight($newpath, $len+1)
   EndIf
   FileWriteLine($Savefile, 'DirCreate("' & @ScriptDir & $newstring & '")' )
   FileWriteLine($Savefile, 'FileInstall("' & $Path & $newpath & '",@ScriptDir & "' & $newpath & '")' )
Next

MsgBox(0, "Fertig", "Datei wurde erstellt!", 2)

Else

MsgBox(0, "Fehler!", "Wählen Sie die Pfade aus!", 2)

EndIf
EndFunc