#include <File.au3>
$sRet_FI_Lines = _FileInstallGetFolder(_PathFull(@AutoItExe & "\.."), "$aDest[$i]", 1, "*.exe")
ConsoleWrite("+Return:" & @CRLF & $sRet_FI_Lines & @CRLF & @CRLF & "!Error = " & @error & @CRLF & @CRLF)
Func _FileInstallGetFolder($sSource, $sDest, $nFlag = 0, $sMask = "*", $nCompiled = False)
Local $hSearch, $sNext_File, $sRet_FI_Lines = ""
If (Not $nCompiled) Or ($nCompiled And @Compiled) Then
$hSearch = FileFindFirstFile($sSource & "\" & $sMask)
If $hSearch = -1 Then Return SetError(1, 0, "")
;Check if it's a $Var (or $Array[$i][N]...)
Local $iAddAsVar = StringRegExp($sDest, "\A(\$\w+(\[(\$\w+|\d+)\])*?|@\w+)$")
While 1
$sNext_File = FileFindNextFile($hSearch)
If @error Then
ExitLoop ;No more files
EndIf
If $sSource = @ScriptDir And $sNext_File = @ScriptName Then
ContinueLoop
EndIf
If $iAddAsVar Then
$sRet_FI_Lines &= 'FileInstall("' & $sSource & '\' & $sNext_File & '", ' & _
$sDest & ' & "\' & $sNext_File & '", ' & $nFlag & ')' & @CRLF
Else
$sRet_FI_Lines &= 'FileInstall("' & $sSource & '\' & $sNext_File & '", "' & _
$sDest & '\' & $sNext_File & '", ' & $nFlag & ')' & @CRLF
EndIf
WEnd
FileClose($hSearch)
EndIf
If $sRet_FI_Lines = "" Then Return SetError(2, 0, "")
Return StringStripWS($sRet_FI_Lines, 3)
EndFunc