Dateien des Explorers in eine ListView - kleinere Probleme

  • Hi,
    ich habe eine kleine GUI erstellt.
    In dieser wird in einem TreeView ein Ordner ausgewählt.
    Dann soll in einer ListView die enthaltenen Dateien aufgelistet werden.
    Dies funktioniert soweit.
    Leider werden die Dateien erst unsortiert hinzugefügt und dann muß ich sie manuell sortieren. Dies funktioniert auch, jedoch wäre es mir lieber, wenn die Einträge gleich sortiert würden.
    Die Daten lese ich über ein Array ein.
    Später will ich die Dateien noch in ein anderes ListView verschieben. Jedoch bin ich noch nicht soweit

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Include <GUIConstants.au3>
    #include <GuiTreeView.au3>
    #Include <File.au3>
    #include <GuiListView.au3>
    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Tree
    Global $SubTree
    Global $merken = "\"

    [/autoit] [autoit][/autoit] [autoit]

    Dim $time, $time2, $vergleich

    [/autoit] [autoit][/autoit] [autoit]

    ;GUI erstellen
    $Form1 = GUICreate("Browse", 800, 800)
    $TreeView = GUICtrlCreateTreeView(8, 8, 225, 273, BitOR($WS_BORDER,$TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
    GUICtrlSetImage(-1, "shell32.dll", 3, 4)
    GUICtrlSetImage(-1, "shell32.dll", 4, 2)
    $ListView = GUICtrlCreateListView("Datei|Datum", 300, 10, 400, 250)
    $ok = GUICtrlCreateButton(">>>>>>>>>>>> &Weiter >>>>>>>>>>>>", 8, 288, 227, 25)
    $test = GUICtrlCreateButton("TEST", 308, 288, 227, 25)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    ;Spaltenbreite für die beiden Spalten festlegen
    _GUICtrlListViewSetColumnWidth($listview, 0, 200)
    _GUICtrlListViewSetColumnWidth($listview, 1, 50)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Laufwerk
    $HDDrives = "V:"
    Search($HDDrives , "*.*")
    $var = IniReadSection("Files.ini", $HDDrives & "\")
    For $h = 1 To $var[0][0]
    $IniRead = IniRead("Files.ini", $HDDrives & "\", $h, "NotFound")
    _Next($IniRead, "*.*", $h)
    Next

    [/autoit] [autoit][/autoit] [autoit]



    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $ok
    ;~ Run("explorer.exe "& _GUICtrlTreeViewGetTree($TreeView,"\"))
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $test
    EXIT
    EndSelect
    _check()
    WEnd



    Func _check()
    $vergleich = _GUICtrlTreeViewGetTree($treeview, "\") & "\"
    If $merken <> $vergleich Then
    _Dateien()
    $merken = $vergleich
    Else
    EndIf
    EndFunc ;==>_check



    Func _Dateien()
    _GUICTRLListViewDeleteAllItems($listview)
    $vergleich = _GUICtrlTreeViewGetTree($treeview, "\") & "\"

    [/autoit] [autoit][/autoit] [autoit]

    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl = DirGetSize($vergleich, 3)

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle = 0
    Dim $array_quelle[$anzahl[1] + 1][2]
    $array = _FileListToArray($vergleich, "*", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array)-1
    $array_quelle[$i][0] = $array[$i]
    $time = FileGetTime($vergleich & $array[$i], 0)
    $array_quelle[$i][1] = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArraySort_2ary($array_quelle,0,0)
    ;~ _ArrayDisplay2D($array_quelle,"$array_quelle")

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($array) - 1
    $time = FileGetTime($vergleich & $array[$i], 0)
    $datum = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    GUICtrlCreateListViewItem($array[$i] & "|" & $datum, $listview)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;Einträge vom ListView sortieren
    Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc






    ;Functions
    ;///////////////////////////////////////////
    Func Search($SearchPath, $FileType)
    $Item1 = GUICtrlCreateTreeViewItem(StringUpper($SearchPath), $TreeView)
    GUICtrlSetImage(-1, "shell32.dll", 8)
    $SearchPath &= "\"
    $Search = FileFindFirstFile($SearchPath & $FileType)
    If $Search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    $Count = 1
    Dim $Tree[99999]
    While 1
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $File)
    If StringInStr($Attrib, "D") Then
    $Tree[$Count] = GUICtrlCreateTreeViewItem($File, $Item1)
    IniWrite("Files.ini", $SearchPath, $Count, $SearchPath & $File & "\")
    $Count = $Count + 1
    EndIf
    WEnd
    FileClose($Search)
    EndFunc ;==>Search



    Func _Next($SearchPath, $FileType, $Number)
    $Search1 = FileFindFirstFile($SearchPath & $FileType)
    If $Search1 = -1 Then
    Else
    $Count = 1
    Dim $SubTree[99999]
    While 1
    $NextFile = FileFindNextFile($Search1)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $NextFile)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile = "." Or $NextFile = ".." Then
    Else
    $FBuffer = $SearchPath & $NextFile & "\"
    $SubTree[$Count] = GUICtrlCreateTreeViewItem($NextFile, $Tree[$Number])

    $Search2 = FileFindFirstFile($FBuffer & "*.*")
    If $Search2 = -1 Then
    ;~ msgbox(0,"","Ingen mapper")
    Else
    $Count1 = 1
    While 1
    $NextFile2 = FileFindNextFile($Search2)
    If @error Then ExitLoop
    $Attrib = FileGetAttrib($FBuffer & $NextFile2)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile2 = "." Or $NextFile2 = ".." Then
    Else
    GUICtrlCreateTreeViewItem($NextFile2, $SubTree[$Count])
    $Count1 = $Count1 + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search2)
    EndIf
    ;msgbox(0,"","Stop " & $Count)
    $Count = $Count + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search1)
    EndIf
    EndFunc ;==>_Next

    [/autoit]
    • Offizieller Beitrag

    Hast Du es schon mal so probiert:

    [autoit]

    $ListView = GUICtrlCreateListView("Datei|Datum", 300, 10, 400, 250,BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_SORTASCENDING))

    [/autoit]
  • Hi Bernd :musik2:
    habs schnell getestet,
    ist genauso

    Gibts vielleicht ne Funktion, wo man den Explorer direkt in eine GUI einbinden kann?
    Würde gerne noch die jeweiligen Dateisymbole wie im Explorer angezeigt bekommen

    EDIT: Bin ein bisschen weiter gekommen, wobei sich obiges Problem nicht gelöst hat.

    Will nun das ganze sortieren, dass die Ordner oben stehen und dann darunter die Dateien.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Include <GUIConstants.au3>
    #include <GuiTreeView.au3>
    #Include <File.au3>
    #include <GuiListView.au3>
    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary2.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Tree
    Global $SubTree
    Global $merken = "\"
    Global $merken2 = "\"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim $time, $time2, $quellpfad, $quellpfad2, $merk
    Dim $h_item

    [/autoit] [autoit][/autoit] [autoit]

    ;GUI erstellen
    $Form1 = GUICreate("Browse", 800, 800, -1, -1, -1)
    $TreeView = GUICtrlCreateTreeView(8, 8, 225, 273, BitOR($WS_BORDER,$TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
    GUICtrlSetImage(-1, "shell32.dll", 3, 4)
    GUICtrlSetImage(-1, "shell32.dll", 4, 2)
    $ListView = GUICtrlCreateListView("Datei|Größe|Art|Datum", 300, 10, 500, 250, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_SORTASCENDING))

    [/autoit] [autoit][/autoit] [autoit]

    $TreeView2 = GUICtrlCreateTreeView(8, 408, 225, 273, BitOR($WS_BORDER,$TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
    GUICtrlSetImage(-1, "shell32.dll", 3, 4)
    GUICtrlSetImage(-1, "shell32.dll", 4, 2)
    $ListView2 = GUICtrlCreateListView("Datei|Größe|Datum", 300, 410, 500, 250, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_SORTASCENDING, $WS_EX_ACCEPTFILES ))
    ;~ GUICtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping
    $ok = GUICtrlCreateButton(">>>>>>>>>>>> &Weiter >>>>>>>>>>>>", 8, 288, 227, 25)
    $test = GUICtrlCreateButton("kopieren", 308, 300, 227, 25)
    $verschieben = GUICtrlCreateButton("verschieben", 308, 700, 227, 25)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $input1=GUICtrlCreateInput("",20,350, 150)
    ;~ GUICtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Spaltenbreite für die beiden Spalten festlegen
    _GUICtrlListViewSetColumnWidth($listview, 0, 200)
    _GUICtrlListViewSetColumnWidth($listview, 1, 50)
    _GUICtrlListViewSetColumnWidth($listview, 2, 50)
    _GUICtrlListViewJustifyColumn ($listview,1,1)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListViewSetColumnWidth($listview2, 0, 200)
    _GUICtrlListViewSetColumnWidth($listview2, 1, 50)
    _GUICtrlListViewSetColumnWidth($listview2, 2, 50)
    _GUICtrlListViewJustifyColumn ($listview2,1,1)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Laufwerk
    $HDDrives = "V:"
    Search($HDDrives , "*.*")
    $var = IniReadSection("Files.ini", $HDDrives & "\")
    For $h = 1 To $var[0][0]
    $IniRead = IniRead("Files.ini", $HDDrives & "\", $h, "NotFound")
    _Next($IniRead, "*.*", $h)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_DROPHILITED)
    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_SELECTED)

    $HDDrives2 = "D:"
    Search2($HDDrives2 , "*.*")
    $var2 = IniReadSection("Files.ini", $HDDrives2 & "\")
    For $h2 = 1 To $var2[0][0]
    $IniRead2 = IniRead("Files.ini", $HDDrives2 & "\", $h2, "NotFound")
    _Next($IniRead2, "*.*", $h2)
    Next
    ;~ $merk = 0

    ;~ _GUICtrlTreeViewSetState($treeview2, $h_item, $TVIS_SELECTED)
    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_DROPHILITED)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $quellpfad2 = $HDDrives2 & "\"

    While 1
    $msg = GUIGetMsg()
    Select

    Case $msg = $ok
    ;~ Run("explorer.exe "& _GUICtrlTreeViewGetTree($TreeView,"\"))

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $test
    $item = _GUICtrlListViewGetItemTextArray($listview)
    If (Not IsArray($Item)) Then
    msgbox(0,"Ordner", "FEHLER")
    Else
    msgbox(0,"", $quellpfad & $item[1] & " " & "D:\" & $item[1])
    FileCopy($quellpfad & $item[1], "D:\" & $item[1])
    EndIf

    Case $msg = $verschieben
    $item = _GUICtrlListViewGetItemTextArray($listview)
    If (Not IsArray($Item)) Then
    msgbox(0,"Ordner", "FEHLER")
    Else
    msgbox(0,"", $quellpfad & $item[1] & " " & $quellpfad2 & $item[1])
    FileMove($quellpfad & $item[1], $quellpfad2 & $item[1])
    _aktualisieren()
    _aktualisieren2()
    EndIf


    EndSelect
    _check()
    _check2()
    WEnd



    Func _check()
    $quellpfad = _GUICtrlTreeViewGetTree($treeview, "\") & "\"
    If $merken <> $quellpfad Then
    _aktualisieren()
    $merken = $quellpfad
    Else
    EndIf
    EndFunc ;==>_check



    Func _aktualisieren()
    _GUICTRLListViewDeleteAllItems($listview)
    ;~ If $merk = 0 Then
    ;~ $quellpfad ="D:\"
    ;~ $merk = 1
    ;~ Else
    $quellpfad = _GUICtrlTreeViewGetTree($treeview, "\") & "\"
    ;~ EndIF
    ;~ $quellpfad ="D:\"
    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl = DirGetSize($quellpfad, 3)

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle = 0
    Dim $array_quelle[$anzahl[1] + $anzahl[2] + 1][4]
    $array = _FileListToArray($quellpfad, "*", 0)
    ;~ _ArrayDisplay($array)
    ;~ msgbox(0,"",$array[1])

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array)-1
    $array_quelle[$i][0] = $array[$i]

    [/autoit] [autoit][/autoit] [autoit]

    $xxx = DirGetSize($quellpfad & $array_quelle[$i][0], 1)

    If @error = 1 Then
    $yyy = FileGetSize($quellpfad & $array_quelle[$i][0])
    $array_quelle[$i][1] = $yyy
    $array_quelle[$i][2] = "Datei"
    Else
    ;~ $array_quelle[$i][1] = $xxx[0]
    $array_quelle[$i][1] = ""
    $array_quelle[$i][2] = "Ordner"
    EndIf


    $time = FileGetTime($quellpfad & $array[$i], 0)
    $array_quelle[$i][3] = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    ;~ _ArrayDisplay2D($array_quelle,"$array_quelle")
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;~ _ArraySort_2ary($array_quelle,2,0)
    _ArrayDisplay2D($array_quelle,"$array_quelle")

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($array) - 1

    [/autoit] [autoit][/autoit] [autoit]

    $size = DirGetSize($quellpfad & $array[$i], 1)

    If @error = 1 Then
    $yyy = FileGetSize($quellpfad & $array[$i])
    $groesse = Round(($yyy+1024) / 1024, 0)
    Else
    ;~ $groesse = Round(($size[0]) / 1024, 0)
    $groesse = ""
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $time = FileGetTime($quellpfad & $array[$i], 0)
    $datum = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    GUICtrlCreateListViewItem($array[$i] & "|" & $groesse & " KB" & "|" & $datum, $listview)
    ;~ GUICtrlCreateListViewItem($array_quelle[$i][0] & "|" & $array_quelle[$i][1] & " KB" & "|" & $array_quelle[$i][2], $listview)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;Einträge vom ListView sortieren
    ;~ Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]


    ;Functions
    ;///////////////////////////////////////////
    Func Search($SearchPath, $FileType)
    $Item1 = GUICtrlCreateTreeViewItem(StringUpper($SearchPath), $TreeView)
    GUICtrlSetImage(-1, "shell32.dll", 8)
    $SearchPath &= "\"
    $Search = FileFindFirstFile($SearchPath & $FileType)
    If $Search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    $Count = 1
    Dim $Tree[99999]
    While 1
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $File)
    If StringInStr($Attrib, "D") Then
    $Tree[$Count] = GUICtrlCreateTreeViewItem($File, $Item1)
    IniWrite("Files.ini", $SearchPath, $Count, $SearchPath & $File & "\")
    $Count = $Count + 1
    EndIf
    WEnd
    FileClose($Search)
    EndFunc ;==>Search


    [/autoit] [autoit][/autoit] [autoit]

    ;--------------------------------------------------------------------------------------------------------------------------------------------------------------




    Func _check2()
    $quellpfad2 = _GUICtrlTreeViewGetTree($treeview2, "\") & "\"
    If $merken2 <> $quellpfad2 Then
    _aktualisieren2()
    $merken2 = $quellpfad2
    Else
    EndIf
    EndFunc ;==>_check



    Func _aktualisieren2()
    _GUICTRLListViewDeleteAllItems($listview2)
    $quellpfad2 = _GUICtrlTreeViewGetTree($treeview2, "\") & "\"

    [/autoit] [autoit][/autoit] [autoit]

    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl2 = DirGetSize($quellpfad2, 3)

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle2 = 0
    Dim $array_quelle2[$anzahl2[1] + 1][3]
    $array2 = _FileListToArray($quellpfad2, "*", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array2)-1
    $array_quelle2[$i][0] = $array2[$i]
    $array_quelle2[$i][1] = FileGetSize($quellpfad2 & $array_quelle2[$i][0])
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $array_quelle2[$i][2] = $time2[2] & "." & $time2[1] & "." & $time2[0] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArraySort_2ary($array_quelle2,0,0)
    ;~ _ArrayDisplay2D($array_quelle,"$array_quelle")

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($array2) - 1
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $size2 = FileGetSize($quellpfad2 & $array2[$i])
    $groesse2 = Round(($size2+1024) / 1024, 0)
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $datum2 = $time2[2] & "." & $time2[1] & "." & $time2[0] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]
    GUICtrlCreateListViewItem($array2[$i] & "|" & $groesse2 & " KB" & "|" & $datum2, $listview2)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;Einträge vom ListView sortieren
    ;~ Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]






    ;Functions
    ;///////////////////////////////////////////
    Func Search2($SearchPath, $FileType)
    $Item1 = GUICtrlCreateTreeViewItem(StringUpper($SearchPath), $TreeView2)
    GUICtrlSetImage(-1, "shell32.dll", 8)
    $SearchPath &= "\"
    $Search = FileFindFirstFile($SearchPath & $FileType)
    If $Search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    $Count = 1
    Dim $Tree[99999]
    While 1
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $File)
    If StringInStr($Attrib, "D") Then
    $Tree[$Count] = GUICtrlCreateTreeViewItem($File, $Item1)
    IniWrite("Files.ini", $SearchPath, $Count, $SearchPath & $File & "\")
    $Count = $Count + 1
    EndIf
    WEnd
    FileClose($Search)
    EndFunc ;==>Search









    ;--------------------------------------------------------------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]





    [/autoit] [autoit][/autoit] [autoit]



    Func _Next($SearchPath, $FileType, $Number)
    $Search1 = FileFindFirstFile($SearchPath & $FileType)
    If $Search1 = -1 Then
    Else
    $Count = 1
    Dim $SubTree[99999]
    While 1
    $NextFile = FileFindNextFile($Search1)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $NextFile)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile = "." Or $NextFile = ".." Then
    Else
    $FBuffer = $SearchPath & $NextFile & "\"
    $SubTree[$Count] = GUICtrlCreateTreeViewItem($NextFile, $Tree[$Number])

    $Search2 = FileFindFirstFile($FBuffer & "*.*")
    If $Search2 = -1 Then
    ;~ msgbox(0,"","Ingen mapper")
    Else
    $Count1 = 1
    While 1
    $NextFile2 = FileFindNextFile($Search2)
    If @error Then ExitLoop
    $Attrib = FileGetAttrib($FBuffer & $NextFile2)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile2 = "." Or $NextFile2 = ".." Then
    Else
    GUICtrlCreateTreeViewItem($NextFile2, $SubTree[$Count])
    $Count1 = $Count1 + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search2)
    EndIf
    ;msgbox(0,"","Stop " & $Count)
    $Count = $Count + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search1)
    EndIf
    EndFunc ;==>_Next

    [/autoit]