Hogyan kellene megírni/kijavítani ezt a kódot, hogy jó legyen?
A feladat az, hogy fájl/mappa lista letárolás nékül rekurzívan olvassunk be egy mappát, és az összesben töröljük ki az összes html-t, majd vegyük a mappákban lévő képek neveit és mindegyikhez külön külön hozzunk létre egy html dokumentumot és mindegyik mappában lennie kell 1 db index.html-nek
Ami eddig "működik", hogty létrehozza a html dokumentumokat, de nem törli őket a legelején (Azért van a törlés a traversen jóval belül, mivel az, hogy egyáltalán fájl-e az állomány az azon belüól van, az index létrehozás meg azért a fgv elején mert a gyökérkönyvtárba is kell index)
Első probléma, hogy ha a "htm" a fájl nevében szerepel, akkor is törlöd. Csak az extension-ben kéne megnézni.
A createNewFile() csak akkor csinál filet, ha még nem létezik. Tehát ha már van egy képhez html, akkor nem csinál, majd az a html letörlődik, és így nem is lesz. Úgy meg lehetne oldani, hogy előbb a html fájlokat listázod egy mappában, törlöd őket, és utána traverse-eled a maradékot.
Az index.html létrehozását csak simán rakd a traverse végére, ne az elejére. Mert jelenleg azt is egyből letörli.
Azóta kicsit alakítottam rajta, és amit írtál elvileg mostmár nem probléma.
Azonban közben rájöttem, hogy mivel képeknél számít az, hogy első vagy utolsó-e (lépkedni kell az egyes mappákban tudni közöttük) érdemesebb egy olyan struktúrát kialakítani, hogy legyen egy Folder class és egy 'Regularfile'class, ahol a folder ugye nyílván tartalmazhat további mappákat és fájlokat, azonban ennek megvalósítása többszöri nekifutásra se megy
Ezt nem értem, hogy hogyan kell lépkedni, de lehet nem is kell értenem.
Ha objektumstruktúrába akarod ezeket tölteni, akkor szerintem szükséged lesz listákra. Bár csinálhatod láncolt listával is. Pl. minden RegularFile tartalmaz egy RegularFile változót, ami mutat a következőre, az utolsóé pedig null. A Folder pedig lehet a RegularFile leszármazottja, és neki ezen felül van még egy RegularFile változója, ami a benne lévő fájlok közül az elsőre mutat.
Tehát ilyesmit kell kihozni
root
-subfolder1
-subsubfolder1
-sub_kep1.jpg
sub_kep1.html
index.html
-subfolder2
-subfolder3
-kep1.jpg
-kep1.html
-index.html
az index.html mindig az adott szinten lévő directorykat és kepeket listazza csoportosítva (mappa vagy kep)
Ilyesmit próbáltam meg amit írsz, de sehogy nm jött össze. Java-ban a File osztaly az lehet bármi (könyvtár vagy sima fájl is) és ehhez akartam létrehozni 2 gyermeket, de a konstruktorokkal és a listához való hozzáadásának mikéntjével nem boldogulok egyelőre
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!