TreeView   otázka

C#

Dobrý den.

Mám otázku týkající se komponenty TreeView. Slyšel jsem, že by měla existovat nějaká funkce, podle které se automaticky vytvoří položky(nodes) dle nějaké danné adresářové struktury. Existuje něco takového?

Pokud ne, jak to jinak řešit? Potřeboval bych procházet adresáře, a podle toho hiearchicky vytvářet nody. Taždému potom přiřadit název podle jména adresáře. Kdesi jsem se dočet, že by se to mělo dělat cyklem while, ale upřímě řečeno, vůbec si neumím představit, jak.

Díki za odpověd a možnou pomoc

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Například takto:

treeView.BeginUpdate();
treeView.Nodes.Clear();
AddDirectory(treeView, @"C:\Nejaka cesta", null);
treeView.EndUpdate();

void AddDirectory(TreeView treeView, string path, TreeNode node)
{
  if(node == null)
  {
    node = treeView.Nodes.Add(new System.IO.DirectoryInfo(path).
  }

  foreach (var directory in System.IO.Directory.GetDirectories(path))
  {
    var subNode = node.Nodes.Add(new System.IO.DirectoryInfo(directory).Name);
    AddDirectory(treeView, directory, subNode);				
  }
}

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky, ale nějak to nefunguje :-D

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak si to odlaďte a nenuďte nás s tím. Dosti na tom, že se někdo namáhal Vám nazanačit kód, to je víc než kdo musel.

nahlásit spamnahlásit spam -3 / 3 odpovědětodpovědět

CO Vám přesně nefunguje? Zobrazí se nějaká chyba? Jaká?

Ty první 4 řádky dejte na místo, kde se má provést naplnění TreeView (obsluha stisku tlačítka, načtení formuláře apod.). Přesné míto záleží na tom, co přesně potřebujete.

Metoda AddDirectory pak slouží k rekurzivnímu naplnění TreeView. Přidá do TreeView adresáře na zadané cestě a spustí funkci AddDirectory pro všechny podadresáře.

Je to samozřejmě napsané jednoduše, aby byl vidět princip. Pro reálné použití si musíte ošetřit chyby - například pokud nemá užvatel oprávnění k adresáři.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback