Avatar
Miroslava
Člen
Avatar
Miroslava:

Zdravím, potrebovala by som poradiť ohľadne zadania v ktorom mám načítať komplexnú adresárovú štrukúru zvoleného adresára vrátane podadresárov a súborov v nich. Adresárová štruktúra bude prehľadne zobrazená v pracovnom okne aplikácie a zároveň bude zapísaná do zvoleného textového súboru (so zachovaním stromovej štruktúry adresára). Program bude vytvorený ako Win aplikácia. Program by mal vhodným spôsobom zobrazovať dosiahnutý výsledok. Program by mal obsahovať základné ošetrenie (vstupné údaje, práca so súbormi...) pomocou ochytávania výnimiek.

Skúšala som to jedine cez TextBox a aby mi to vypisovalo jedine z C disku ale to je vsetko vedel by mi niekto poradit ako na to?...Zatial len tento zdrojový kód mám (v Design je jedno tlacitko button a textbox):
void Button1Click(object sender, EventArgs e)
{

}

private void button1_Click(ob­ject sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo("C:\\"); DirectoryInfo[] dirArr = dir.GetDirecto­ries();
foreach (DirectoryInfo dri in dirArr)
{ textBox1.Text = textBox1.Text + dri.Name; textBox1.Text = textBox1.Text + "\n"; }
}
}
}

 
Odpovědět 12.12.2013 18:19
Avatar
hanse
Člen
Avatar
hanse:

Pro načtení zadávaného adresáře doporučuju použít FolderBrowseDialog (ve WinForms v toolboxu).
Pro vytvoření samotné stromové struktury pak použít rekurzy a všechny adresáře ukládat do kolekce (která ti musí zachycovat nadřazený prvek, existuje-li).

Editováno 12.12.2013 19:59
 
Nahoru Odpovědět 12.12.2013 19:57
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Tohle je výborný příklad na rekurzi. Nebudu za tebe dělat domácí úkol, ale alespoň slovy.

Udělel si funkci na "výpis obsahu adresáře". Části už máš za sebou, pak se ti bude hodit

  • System.IO.Direc­tory.GetFiles
  • System.IO.FileInfo

Pokud v daném adresáři najdeš Adresář - zavolej funkci "výpis obsahu adresáře". To bude asi to, co po tobě chtějí.

Grafický cukrbliky nechám na tobě. WinForm se na to nechodí, udělej to jako konzolovku.


Kdybys byla ve stavu akutní nouze. Tak příkazová řádka "tree muj_adresar > muj_vystupni_sou­bor.txt" asi provar, ale bonus za efektivitu a originalitu ;-)

 
Nahoru Odpovědět 14.12.2013 13:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.