Hallo Oscar ,
die Sortierung scheint jetzt zu passen, jedoch hab ich zweifel an den Größenangaben. Kann es durch Summieren der Rundungsdifferenz passieren, dass alle Unterordner zusammen z.T. bis 1% weniger ergeben als der Parent?
Spoiler anzeigen
#include <GuiTreeView.au3>
#include <GUIConstantsEx.au3>
$gui = GUICreate("Treeview")
Global $id = 0, $dir[9999], $path = "c:\Programme\AutoIt3\"
$tree = GUICtrlCreateTreeView(0, 0, 481, 353)
$dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
GUISetState(@SW_SHOW)
searchdir($path, $id, $tree)
ReDim $dir[$id + 1]
GUICtrlSetState($dir[0], $GUI_EXPAND)
MsgBox(0, 0, 'Bin fertig')
;_GUICtrlTreeView_Sort($tree)
While 1
$g = GUIGetMsg()
If $g = -3 Then Exit
WEnd
Func searchdir($d, $i,$sortNode)
Local $f, $n, $s
$f = FileFindFirstFile($d & "*")
While 1
$n = FileFindNextFile($f)
If @error Then ExitLoop
$s = DirGetSize($d & $n)
If $s > -1 Then
$id += 1
$sSize = StringFormat("%.3f",Round($s / 1024 / 1024, 3))
$dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("%10s", $sSize) & " MB - " & $n, $dir[$i])
_GUICtrlTreeView_Sort($sortNode)
searchdir($d & $n & "\", $id, $dir[$id])
EndIf
WEnd
EndFunc ;==>searchdir
mfg (Auto)Bert