Diskuze: Neexistující uzel
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
To jako že ty soubory nejsou v jednom adresáři a nehodlám je tam dávat - prostě potřebuji vlastní uzel - jeho pod uzly budou ty mé cesty k souborům. Takže to není neexistující uzel ale uzel s odkazy z různých adresářů.
TreeView má nějakou kolekci Nodes nebo tak podobně, kam si můžeš přidat co chceš. Ve tvém případě by bylo asi lepší si udělat všechny Nodes sám, než používat adresářovou strukturu (předpokládám, že to tak máš).
No právě to je ten problém. Část mám reálnou část ne. Ano právě si hraji s Nodes. Můj problém je jen ten, že mi mů imaginární uzel bere tree view jako reálný a tak napíše error - část cesty nebyla nalezena - šlo by s tím něco udělat? Děkuji.
foreach (DriveInfo drv in DriveInfo.GetDrives())
{
if(drv.IsReady)
{
TreeNode t2 = new TreeNode();
t2.Text = drv.Name;
t2.Nodes.Add("");
treeView1.Nodes.Add(t2);
}
}
this.obsah = new TreeNode();
this.obsah.Text = "Obsah Pinetu";
using (StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + @"\Pinet\save.dat"))
{
string s;
while ((s = sr.ReadLine()) != null)
{
if (s != "")
{
TreeNode bvc = new TreeNode();
bvc.Text = s;
this.obsah.Nodes.Add(bvc);
}
}
}
this.treeView1.Nodes.Add(this.obsah);
Jo pardon - after select:
try
{
TreeNode current = e.Node;
string path = current.FullPath;
string[] Files = Directory.GetFiles(path);
string[] Directories = Directory.GetDirectories(path);
string[] subinfo = new string[3];
listView1.Clear();
listView1.Columns.Add("Name", 255);
listView1.Columns.Add("Size", 100);
listView1.Columns.Add("Type", 80);
foreach (string Dname in Directories)
{
subinfo[0] = GetFileName(Dname);
subinfo[1] = "";
subinfo[2] = "FOLDER";
ListViewItem DItems = new ListViewItem(subinfo);
listView1.Items.Add(DItems);
}
foreach (string Fname in Files)
{
subinfo[0] = GetFileName(Fname);
subinfo[1] = GetSizeinfo(Fname);
subinfo[2] = GetTypeinfo(Fname);
ListViewItem FItems = new ListViewItem(subinfo);
listView1.Items.Add(FItems);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Error - Chyba");
}
Tak to si musíš ošetřit
Napadá mě, jestli uzel nemá vlastnost Tag, tak by sisu ukládal zda je pravý
či nikoli a dle toho potom zpracovával kliknutí. Jinak mi to přijde
překombinované, ale nevím, co děláš.
Já jen potřebuji vědět, jak mám v after select dostat ty mnou vytvořené poduzly,... Děkuji.
Musíš si držet referenci na ten naduzel, do kterého to chceš dát. Pak přistoupíš k jeho kolekci uzlů a tam tpřidáš nový. je tma nějaké childNodes nebo jen nodes.
Každopádně mi to přijde jako prasárna, tohle by chtělo objektovou hierarchii s abstraktní třídou a přepsanou metodou ToString().
Tak mám menší problém - odkaz prý není nastaven na instanci objektu:
listView1.Clear();
listView1.Columns.Add("Jméno", 255);
listView1.Columns.Add("Velikost", 100);
listView1.Columns.Add("Typ", 80);
for (int pocet = 0; index - pocet >= 0; pocet++)
{
TreeNode[] current = e.Node.Nodes.Find(soubor[pocet], false); //Zde se projevuje chyba
string path = current[pocet].FullPath;
string[] Files = Directory.GetFiles(path);
string[] Directories = Directory.GetDirectories(path);
string[] subinfo = new string[3];
foreach (string Dname in Directories)
{
subinfo[0] = GetFileName(Dname);
subinfo[1] = "";
subinfo[2] = "FOLDER";
ListViewItem DItems = new ListViewItem(subinfo);
listView1.Items.Add(DItems);
}
foreach (string Fname in Files)
{
subinfo[0] = GetFileName(Fname);
subinfo[1] = GetSizeinfo(Fname);
subinfo[2] = GetTypeinfo(Fname);
ListViewItem FItems = new ListViewItem(subinfo);
listView1.Items.Add(FItems);
}
}
Rovnou jsem dávám celý kód pro vytknutí nedostatků. Za pomoc děkuji předem.
index je pocet vecí v poli soubor - pole soubor je soubor odkazů - které jsem ukládal do treeview.Node.Nodes jako text - tedy odkaz,...
Moc se v tom nevyznám a popravdě to ani nechci luštit. Jestli jsi to psal, tak přeci víš, jak odchytit ten node, do kterého chceš potom přidávat. Ten si uložíš do obyčejné proměnné a do jeho dětí přidáš svůj node.
Zobrazeno 11 zpráv z 11.