#include<Array.au3>
#include <getjpegsize.au3>

$ret = _GetFilesFolder_Rekursiv('C:\TESTBILDER\Originale\', '*', 0, 0)
If IsArray($ret) Then
    _ArrayDisplay($ret, 'Rekursiv alle au3-Dateien')
	
	$counter = $ret[0]
	
	$file = FileOpen("C:\TEST\test.csv", 1)
	FileWrite($file, $counter& @CRLF)
	FileClose($file)
	
	For $start = 1 to $counter

	$img_size = _GetJpegSize($ret[$start])
	$img_width = $img_size[0]
	$img_height = $img_size[1]


	$file = FileOpen("C:\TESTBILDER\test.csv", 1)
	
	If $file = -1 Then
		MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
		Exit
	EndIf

	FileWrite($file, $start &";"&$ret[$start] &";"& $img_width&" x "&$img_height & @CRLF)
	;sleep(1000)
	FileClose($file)

	;$start = $start + 1

	Next
	;FileWrite($file, $ret[0]& @CRLF)

;ansonsten tut es das
Else
    MsgBox(0, 'Rekursiv alle au3-Dateien', $ret & @CRLF)
    ConsoleWrite($ret & @CRLF)
EndIf

;AUFLISTUNGSFUNKTION
;==================================================================================================
; Function Name:   _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description:     Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s):    $sPath     der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
;                  $sExt      Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
;                  $iDir      -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
;      optional:   $iRetType  0 gibt Array, 1 gibt String zurück
;      optional:   $sDelim    legt Trennzeichen für Stringrückgabe fest
;                             0 -@CRLF (Standard)  1 -@CR  2 -@LF  3 -';'  4 -'|'
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
;                  Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; Author(s):       BugFix (bugfix@autoit.de)
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
	Switch $sDelim
		Case '1'
			$sDelim = @CR
		Case '2'
			$sDelim = @LF
		Case '3'
			$sDelim = ';'
		Case '4'
			$sDelim = '|'
		Case Else
			$sDelim = @CRLF
	EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
        Local $aOut
        $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
        If $aOut[1] = '' Then
            ReDim $aOut[1]
            $aOut[0] = 0
        EndIf
        Return $aOut
    Else
        Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
EndFunc

Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
	If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
        For $file In $Folder.Files
            If $Ext <> '*' Then
                If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
                    $strFiles &= $file.Path & $Delim
            Else
                $strFiles &= $file.Path & $Delim
            EndIf
        Next
    EndIf
    For $Subfolder In $Folder.SubFolders
        If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
        _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
EndFunc
