Pokud jsme ukazali dvouurovnovou strukturu adresaru jako dvouurovnovy strom, je jen prirozene rozsirit
adresarovou strukturu na strom libovolne vysky. Tato generalizace umoznuje uzivatelum vytvaret sve vlastni
podadresare a organizovat tak sve soubory. MS DOS je napr. strukturovan jako strom. Strom je velmi casta
adresarova struktura. Strom ma korenovy adresar. Ke kazdemu souboru vede jednoznacna cesta od
korenoveho adresare pres vsechny podadresare az k cilovemu souboru.
Obr. 78 Stromova adresarova struktura
Adresar (nebo podadresar) obsahuje mnozinu souboru adresaru nebo podadresaru. Adresar je jednoduse
soubor, se kterym OS naklada specialnim zpusobem. Vsechny adresare maji stejny vnitrni format. Jeden bit v
kazde polozce adresare identifikuje, zda je dana polozka soubor (0) nebo podadresar (1). K vytvoreni a
smazani adresare uziva system specialni volani.
Pri bezne praci ma kazdy uzivatel definovan aktualni adresar (current directory). Aktualni
adresar obsahuje vetsinou souboru tykajici aktualniho zajmu uzivatele. Jestlize se uzivatel odkazuje na
soubor, je prohledan aktualni adresar. Jestlize potrebny soubor neni v aktualnim adresari, potom musi
uzivatel, bud specifikovat vyhledavaci cestu, nebo zmenit aktualni adresar na adresar, ktery obsahuje
pozadovany soubor.
Zmena aktualniho adresare na jiny je provadena systemovym volanim, ktere vyzaduje jako parametr
jmeno adresare a provede predefinovani aktualniho adresare. Uzivatel muze tedy zmenit svuj aktualni
adresar kdykoliv potrebuje. Po provedenem volani change directory vsechna volani open
hledaji specifikovany soubor v aktualnim adresari.
K inicializaci aktualniho adresare uzivatele dojde, kdyz system spusti uzivatelovu ulohu, nebo kdyz se
uzivatel prihlasi do systemu. Operacni system tehdy prohleda soubor uzivatelskych uctu, aby nalezl polozku
tykajici daneho uzivatele (s informacemi o jeho uzivatelskem uctu). Mezi temito informacemi je i ukazatel do
uzivatelova domaciho adresare. Tento ukazatel je zkopirovan do lokalni promenne uzivatele, ktera specifikuje
uzivateluv aktualni adresar.
Cesta k souboru muze byt dvojiho druhu: absolutni (absolute path name) nebo relativni
(relative path name). Absolutni cesta zacina korenovym adresarem a pokracuje az k souboru.
Relativni cesta definuje cestu z aktualniho adresare. Budeme-li uvazovat strukturu adresaru z minuleho
obrazku a je-li aktualni adresar root/spell/mail, potom relativni cesta prt/first odkazuje na
stejny soubor jako absolutni cesta root/spell/mail/prt/first.
Umoznime-li uzivateli vytvaret podadresare, umoznime mu vytvorit strukturu jeho souboru. Tak muze
vytvorit adresare pro ruzne typy souboru (napr. samostatny adresar si muze uzivatel vytvorit pro ulozeni
textu teto prednasky, dalsi pro programy, ktery bude obsahovat zdrojove programy, adresar bin pro jejich
spustitelne formy atd. atd.).
Zajimavym problemem ve stromove strukture adresaru je problem smazani adresare. Je-li adresar
prazdny, muzeme jednoduse smazat jeho polozku v nadrazenem adresari. Pokud ovsem mazany adresar
prazdny neni a obsahuje nejake soubory nebo podadresare, je mozno s nim nalozit dvema zpusoby. Nektere
systemy (napr. MS DOS) nedovoli smazat adresar, ktery neni prazdny - tj. uzivatel musi nejprve smazat
vsechny soubory, ktere aktualni adresar obsahuje. Pokud adresar obsahuje podadresare, je treba tento
algoritmus rekurzivne aplikovat i na ne. To muze znamenat pro uzivatele znacnou namahu.
Druhe reseni, ktere umoznuje napr. Unix prikazem rm -r je, ze dojde ke smazani vsech
souboru i podadresaru, ktere mazany adresar obsahuje. Toto reseni je na jedne strane prijemnejsi, nicmene
predstavuje pro system i znacne nebezpeci, nebot jednim prikazem muze byt nechtene smazan cely strom
adresaru. Dojde-li k tomu, nastava nudna operace kopirovani smazanych souboru z pasky na disk (pokud
ovsem takovou pasku mame :-)
Pri stromovem usporadani adresarove strukturu je velmi jednoduche uzit soubor jineho uzivatele. Napr.
Pokud uzivatel B chce pracovat se souborem uzivatele A, jednoduse zada cestu k tomuto souboru, at uz
relativni nebo absolutni. Pripadne muze zmenit svuj aktualni adresar na adresar uzivatele A a primo
pristupovat ke vsem jeho souborum.
Nektere systemy umoznuji uzivatelum vytvaret vlastni vyhledavaci cesty. Potom uzivatel B muze do
teto cesty definovat 1. svuj adresar; 2. systemovy adresar; 3. adresar uzivatele A. Pokud se jmeno souboru v
adresari uzivatele A neshoduje se jmenem nejakeho souboru v adresari uzivatele B nebo v systemovem
adresari, muze se na tento soubor uzivatel B odkazovat jednoduse pouze prostrednictvim jeho jmena.
Poznamenejme, ze u stromove usporadane struktury adresaru muze byt cesta k souboru (napr.
spustitelnemu) velmi dlouha. Aby uzivatele mohli spoustet programy, aniz by si museli pamatovat cesty k
spustitelnym souborum byva jejich vyhledavani automatizovano. MacOS napr. obhospodaruje soubory zvany
'Desktop File', ktery obsahuje jmeno a cestu ke vsem spustitelnym programum v systemu. Jestlize je k systemu
pripojen novy disk (hard nebo floppy), nebo je pripojena sit, OS vyhleda v novych adresarich spustitelne
soubory a aktualizuje patricne informace. To je podpora pro dvojklik, ktery je v MacOSu uzit, tak jak jiz bylo
zminovano. Dvojklik na ikonu souboru vyvola nacteni jeho atributu creator a v 'Desktop File' je potom
vyhledana cesta k programu, ktery je spusten a otevre soubor, na ktery byl proveden dvojklik.