Hallo zusammen,
ich baue mir grad eine Treeview die rekursiv erstellt wird. Ich gebe einen Ordner mit beliebig vielen Unterordnern und Dateien vor und es wird eine passende Treeview erzeugt.
Ich müssste nun die Möglichkeit haben, dass bei einem Doppelklick auf eine Datei ich quasi den Pfad ermitteln kann, sprich alle vorherigen Knotenpunkte mit „/“ aneinander verkettet. Leider komme ich auf keinen grünen Zweig.
Ich habe auch schon daran gedacht die Informationen in ein Array zu schreiben aber auch ohne Erfolg.
Jemand von euch diesem Thema ein wenig mehr bewandelt, der mir helfen könnte?
Das ist die rekursive Funktion zum auslesen eines Ordners:
[spoiler=Funktion]
#include <GUIConstants.au3>
$rootdir = "Quellordner\"
GUICreate("GUI")
$hTree = GUICtrlCreateTreeView(5, 5, 300, 200)
_LoadTree($rootdir, "*.*", $hTree)
GUISetState()
[/autoit][autoit][/autoit][autoit]While 1
$nMsg = GUIGetMsg()
If $nMsg = -3 Then Exit
Wend
Func _LoadTree($sRoot, $sMask, $hParent)
Local $aFile[1], $nCnt = 1, $newParent
Local $hSearch = FileFindFirstFile($sRoot & $sMask)
If $hSearch >= 0 Then
$sFile = FileFindNextFile($hSearch)
While not @error
ReDim $aFile[$nCnt]
$aFile[$nCnt-1] = $sFile
$nCnt = $nCnt + 1
$sFile = FileFindNextFile($hSearch)
Wend
FileClose($hSearch)
EndIf
For $i = 0 To UBound($aFile) - 1
If $aFile[$i] == "." or $aFile[$i] == ".." Then ContinueLoop
If StringInStr(FileGetAttrib($sRoot & "\" & $aFile[$i]), "D") Then
$newParent = GUICtrlCreateTreeViewItem($aFile[$i], $hParent)
_LoadTree($sRoot & $aFile[$i] & "\", $sMask, $newParent)
ContinueLoop
Endif
GUICtrlCreateTreeViewItem($aFile[$i], $hParent)
Next
EndFunc
[/spoiler ]