Blitz+ Explorer von ??? |
Viel Spass, Dauert am anfang ein bisschen um die ganzen Ordner zu laden, aber dann is ganz nützlich, bzw. auch nicht, da man ja [Win]+[E] drücken kann :D is auch ein kleines Beispiel von Rekursiven Programmieren dabei. [code:1:d8e5798f09]Type t_treedir Field path$, id End Type Type t_file Field path$, id Field ftype End Type window=CreateWindow("Blitz+ Explorer",0,0,800,600,0,3) treeview = CreateTreeView(5,5,190, ClientHeight(window)-10, window) fileview = CreateListBox(200, 5, ClientWidth(window)-205, ClientHeight(window)-10, window) SetGadgetLayout treeview, 1,0,1,1 SetGadgetLayout fileview, 1,1,1,1 MaximizeWindow window DisableGadget window For i=Asc("A") To Asc("Z") If FileType(Chr$(i)+":") <> 0 Then main = AddTreeViewNode(Chr$(i)+":", TreeViewRoot(treeview)) t.t_treedir = New t_treedir tpath$ = Chr$(i)+":" tid = main addtreedir(main, Chr$(i)+":") ExpandTreeViewNode main CollapseTreeViewNode main End If Next EnableGadget window Repeat Select WaitEvent(3000) Case $101 Case $102 Case $103 Case $201 Case $202 Case $203 Case $204 Case $401 Select EventSource() Case treeview FileViewGo fileview, treedirpath$(SelectedTreeViewNode(treeview)) Case fileview ExecFile Chr$(34)+fileviewpath$(SelectedGadgetItem(fileview))+Chr$(34) End Select Case $801 Case $802 Case $803 End Case $804 Case $1001 Case $2001 Case $2002 Case $4001 Default End Select Forever Function addtreedir(parent, dir$) Local ordner, name$, child, anz=0 ordner = ReadDir(dir$) If ordner = 0 Then Return 0 Repeat name$ = NextFile(ordner) If FileType(dir$+""+name$) = 2 And name$ <> "." And name$ <> ".." And name$ <> "" Then child = AddTreeViewNode(name$, parent) anz = anz+addtreedir(child, dir$+""+name$)+1 t.t_treedir = New t_treedir tpath$ = dir$+""+name$+"" tid = child End If Until name$ = "" CloseDir ordner Return anz End Function Function treedirpath$(id) For t.t_treedir = Each t_treedir If tid = id Then Return tpath$ Next End Function Function FileViewGo(fileview, path$) Local i, dir, name$ Delete Each t_file While CountGadgetItems(fileview) <> 0 RemoveGadgetItem fileview, 0 Wend dir = ReadDir(path$) If dir = 0 Then Return 0 i=0 Repeat name$ = NextFile(dir) If name$ <> "" And name$ <> "." And name$ <> ".." And FileType(path$+name$) = 1 Then AddGadgetItem(fileview, name$) t.t_file = New t_file tid = i tftype = 1 tpath$ = path$+name$ i=i+1 End If Until name$ = "" End Function Function fileviewpath$(id) For t.t_file = Each t_file If tid = id Then Return tpath$ Next End Function[/code:1:d8e5798f09] |
von ??? |
vielleicht wäre es besser, die pfade erst dann zu laden, wenn man sie erweitert hat? bei meinem BlitzUI filerequester lasse ich noch grösse, typ und datum der dateien anzeigen...was meinst du, wie lange das dauern würde, würde ich beim start alle dateien auf allen partitionen einlesen? ^_^ ne, also da musst du schon mal noch was optimieren... |
von ich |
Dauert bei mir 15 min, Hängt ein server mit Laufwerksverknüpfung daran, Dauert lange und sieht nicht so schön aus, und die Dateien werden mit einen Klick gleich geöffnet, die idee ist aber gut! |
von ??? |
ehh is nur n beispiel! :D ausserdem gehts bei mir in 10 sekunden am laptop manchmal hilft abbrechen und neustarten das schneller geht! |