Hey leute hab mal ne kleine und blöde Frage:
Wie bekomm ich den Verzeichnisbaum einer bestimmten Partition in einem Treeview rein?
danke schon mal!
N3rO ![]()
Hey leute hab mal ne kleine und blöde Frage:
Wie bekomm ich den Verzeichnisbaum einer bestimmten Partition in einem Treeview rein?
danke schon mal!
N3rO ![]()
Hallo N3r0,
schau dir einmal die Func _GUICtrlTreeView_CreateDirectory und deren möglichen Einsatz an (beides von Oscar ![]()
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>
#include <GUIConstantsEx.au3>
$hGui = GUICreate('SelectFolder', 800, 600)
$hTreeView = GUICtrlCreateTreeView(10, 10, 380, 580, Default, $WS_EX_STATICEDGE)
GUISetState()
ToolTip('Please wait...')
_GUICtrlTreeView_CreateDirectory($hTreeView, @UserProfileDir)
ToolTip('')
Do
Until GUIGetMsg() = -3
;===============================================================================
; Function Name: _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles)
; Description:: erstellt ein TreeView mit Verzeichnissen (+Dateien)
; Parameter(s): $hTreeView = ControlID/Handle des TreeViews
; $sPath = Verzeichnispfad, der dargestellt werden soll
; $bFiles = True = auch Dateien anzeigen, False = nur Verzeichnisse
; Requirement(s): #include<GuiTreeView.au3>
; Return Value(s): Array mit Anzahl der Verzeichnisse=[0] und Dateien=[1]
; 0 und @error = 1, wenn der Pfad nicht existiert bzw. kein Verzeichnis ist
; 0 und @error = 2, wenn das FileSystemObject nicht erstellt werden konnte
; Author(s): Oscar (http://www.autoit.de)
;===============================================================================
Func _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles = False)
Local $hFileItem, $FolderColor = 0x0000FF, $Folder, $aCount[2] = [0, 0]
If Not StringInStr(FileGetAttrib($sPath), 'D') Then Return SetError(1, 0, 0)
$sPath = FileGetLongName($sPath)
Local $oFSO = ObjCreate('Scripting.FileSystemObject')
If @error Then Return SetError(2, 0, 0)
_GUICtrlTreeView_BeginUpdate($hTreeView)
_GUICtrlTreeView_DeleteAll(GUICtrlGetHandle($hTreeView))
Local $hTreeViewItem = GUICtrlCreateTreeViewItem($sPath, $hTreeView)
GUICtrlSetColor(-1, $FolderColor)
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 0)
$Folder = $oFSO.GetFolder($sPath)
_CreateDirectoryRecursive($hTreeView, $Folder, $hTreeViewItem, $bFiles, $aCount)
If $bFiles Then
For $Files In $Folder.Files
$hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hTreeViewItem)
$aCount[1] += 1
Next
EndIf
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 3, 2)
_GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 110, 4)
_GUICtrlTreeView_EndUpdate($hTreeView)
GUICtrlSetState($hTreeViewItem, $GUI_EXPAND)
$oFSO = ''
Return $aCount
EndFunc ;==>_GUICtrlTreeView_CreateDirectory
Func _CreateDirectoryRecursive($hTreeView, $Folder, $ItemOld, $bFiles, ByRef $aCount)
Local $hFolderItem, $hFileItem, $FolderColor = 0x0000FF
For $Subfolder In $Folder.SubFolders
$hFolderItem = GUICtrlCreateTreeViewItem($Subfolder.Name, $ItemOld)
GUICtrlSetColor(-1, $FolderColor)
_GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 3, 2)
_GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 110, 4)
$aCount[0] += 1
_CreateDirectoryRecursive($hTreeView, $Subfolder, $hFolderItem, $bFiles, $aCount)
If $bFiles Then
For $Files In $Subfolder.Files
$hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hFolderItem)
$aCount[1] += 1
Next
EndIf
Next
EndFunc ;==>_CreateDirectoryRecursive
,
mfg (Auto)Bert