Diskuze: Zkontrolování rodiče složky, která byla smazána
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
operátor & ti moc neříká, viď? víc ifů víc adidas....
jinak hlavně pro takovéto účely se používá rekurze.
Pomocí rekurze projdeš celou adresářovou strukturu a to, že se něco
vykoná nebo ne, to už je na tvém kódu.
Rekurze + nejdriv zanorit a az pri vynoreni pokud je prazdna smazat.
Princip jako:
projit_slozku
projit_potomky
if bez_potomku
smazat
Moc se omlouvám. Operátor & samozřejmě znám. Jak jsem řekl program si píšu jen tak a na správnost jsem moc nekoukal samozřejmě je mi jasné, že by tam měl být a budu to tak dělat. A nejsem si jistý ale já zde neopoužívám rekurzi ?
Díky za odpověď. Stejně jako k předešlému dotazu se chci zeptat. Příde mi, že de zde používám rekurzi ne ? A chápu ten tvůj nápad a tk nějak to mam vždyť já si vezmu složku tam se podívam do jiné složky a pokud je prázdná tak jí smažu.
Vec se ma tak, rekurzi pouzivas - v tom kodu se tezko orientuje kvuli kaskade bloku, tak jsem to prehledl - moje chyba.
ALE - prepis to tak (samozrejme jestli chces), ze nejdriv bez ohledu na to,
jestli je slozka prazdna nebo neco obsahuje na ni zavolas tu funkci
showFolders
(mozna bys to mel prejmenovat deleteEmptyFolders) a
potom, co se tohle zavola, tak teprve cekuj jestli je prazdna, pokud jo, tak ji
taky smaz.
Samotna funkce deleteEmptyFolders
by mohla fungovat nejak tak,
ze dostane cestu, sestavi seznam slozek uvnitr, zavola na kazdou slozku uvnitr
rekurzivne sama sebe a pak zkontroluje jestli je prazdna. Kazda rekurze ma mit
ukoncovaci podminku a tady to bude stav, kdy zadana cesta neobsahuje dalsi
podadresare, v tomto momente jsme na konci stromu - zadne dalsi volani, jen
kontrola, jestli je dana slozka prazdna - paklize ano -> smazat ji a
return.
Takze neco jako:
del_empty_dir(dir)
for sub_dir in dir
del_empty_dir(dir + sub_dir)
if is_empty(dir)
delete(dir)
return
Moznosti je ale samozrejme vicero, zalezi jak na to chces jit - tuhle verzi muzes zavolat jako del_empty_dir('/').
Doufam, ze jsem nikde neudelal fundamentalni chybu, nemam moznost se soustredit uplne naplno.
Hele dík moc skvělej nápad Vysvětleno fkt suprově a udělam si to trošinku jinak ale díky tobě to snad udělam moc děkuju
Zobrazeno 8 zpráv z 8.