Forum » Programiranje » [C#] dodajanje direktorijev v treeview (rekurzija)
[C#] dodajanje direktorijev v treeview (rekurzija)
eXoo ::
Zdravo, imam nalogo, da naredim nek preprost windows explorer. Pri dodajanju map in datotek v treeview pa sem naletel na težavo in sicer to, da je zagon aplikacije tako počasen, da je njegova prihodnost ogrožena =). Se da to na kakšen bolj hitrejši način naredit? Sedaj mi pregleda celoten disk ob zagonu aplikacije, verjetno bi bila možna rešitev z nitmi ali s tem, da se sproti nalaga vsebina direktorijev takrat ko pritisnemo + ali dvakrat kliknemo za vpogled v direkotrij?. Še koda :
Hvala.
private TreeNode rekurzija_mape(string pot) { TreeNode node2 = new TreeNode(""); TreeNode node = new TreeNode(pot.Substring(pot.LastIndexOf('\\'))); node.ImageIndex = 2; node.SelectedImageIndex = 2; node.Tag = pot; try { string[] dirs = Directory.GetDirectories(pot); for (int t = 0; t < dirs.Length; t++) { node.Nodes.Add(rekurzija_mape(dirs[t])); } string[] files = System.IO.Directory.GetFiles(pot); for (int t = 0; t < files.Length; t++) { TreeNode tn = new TreeNode(System.IO.Path.GetFileName(files[t])); tn.Tag = files[t]; tn.ImageIndex = 0; tn.SelectedImageIndex = 0; node.Nodes.Add(tn); } return node; } catch (UnauthorizedAccessException) { return node2; } }
Hvala.
FuI2cY ::
Mislim, da bi bila boljša rešitev, če bi te stvari reševal z nitmi (aplikacija ti ne bi zaštekala) ali pa če bi vsakič ob kliku na + (odpiranje pod direktorija) prebral mape znotraj te mape, itd.
FuI2cY ::
Drugače je pa sama rekurzija kar počasna, sploh pri večjih stvareh.
primer rekurzija vs iteracija: http://www.codeproject.com/Articles/211...
primer rekurzija vs iteracija: http://www.codeproject.com/Articles/211...
ibro46 ::
imam eno vprašanje glede C# windows worm application!
zanima me kako se da narediti na primer da bi na en form dodal svoje ime ali pa uro in potem z ukazom (kodo ali kakorkoli pac) naedil da bi se to pojavilo na vseh drugih formih brez da bi sel in dodajal na vsakega posebej??
hvala za odgovor ze vnaprej
zanima me kako se da narediti na primer da bi na en form dodal svoje ime ali pa uro in potem z ukazom (kodo ali kakorkoli pac) naedil da bi se to pojavilo na vseh drugih formih brez da bi sel in dodajal na vsakega posebej??
hvala za odgovor ze vnaprej
paco ::
na windows worm app malo težko, drugače pa,
pseudokoda;
pseudokoda;
groupbox = new groupbox; groupbox.append(ime, ura); form1.append(groupbox); form2.append(groupbox);
It iz aj.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1967 (1567) | ktka |
» | [c#] iz class v classOddelek: Programiranje | 896 (770) | darkolord |
» | problem z linuxom (rabim cimprej prosim)Oddelek: Operacijski sistemi | 1464 (1280) | Isotropic |
» | [C#] Simobilov GlasnikOddelek: Programiranje | 4360 (1440) | Mrch |
» | [visual C#] Na drugem računalniku se ne zaženeOddelek: Programiranje | 1647 (1477) | Beezgetz |