import java.util.ArrayList; public class Mappe extends Fil { private ArrayList filer = new ArrayList<>(); public Mappe (String navn, Mappe forelder){ super(navn, forelder); erMappe = true; } public void leggTilFil(Fil fil) { filer.add(fil); } public ArrayList hentFiler(){ return filer; } public Fil finnFil(String filnavn) { for (Fil fil : filer) { // Basis-tilfellet if (fil.hentNavn().equals(filnavn)) { return fil; } else if (fil.erMappe()) { // er en mappe, let inni her Mappe mappe = (Mappe) fil; // sjekker om vi fant riktig, hvis ikke, let videre Fil funnet = mappe.finnFil(filnavn); if (funnet != null) return funnet; } } return null; } public void skrivUtInnhold() { skrivUtInnholdHjelp(this, "/"); } private void skrivUtInnholdHjelp(Mappe komFra, String sti) { for (Fil fil : komFra.hentFiler()) { System.out.println(sti + fil.hentNavn()); // Hvis vi har en mappe, s? skal vi skrive ut innholdet der if (fil.erMappe()) { // Rekursivt kall skrivUtInnholdHjelp((Mappe) fil, sti + fil.hentNavn() + "/"); } } // Base-tilfellet oppst?r n?r vi er ferdig med ? iterere filene } }