Rekursion und Verzeichnisstruktur



  • Ich brauche eine Funktion, die einen kompletten (UNIX)-Verzeichnisbaum darstellt.
    Also die Funktion schreibe ich selber, mir fehlt ein Algorithmus dafür.
    Ich habe dabei das Problem, dass ich noch nie mit rekursiven Aufrufen gearbeitet habe. Ich kenne vorher nicht die Verschachtelungstiefe des Verzeichnisses.

    Ich zeige mal, wie ich mir das ungefähr gedacht habe (Pseudo-Code):

    funktion zeige_verzeichnisinhalt:
    öffne Verzeichnis
    wenn gefundene Datei ein Verzeichnis -> zeige_verzeichnisinhalt
    wenn gefundene Datei eine normale Datei -> gib auf Bildschirm aus

    Muss ich mir nach jedem Aufruf die Ebene merken, damit ich wieder zurückkehren kann, oder wie funktioniert das?

    Sorry für die vielleicht doofe Frage, aber irgendwie überblicke ich das ganze nicht mehr richtig.



  • Das stimmt eigentlich schon (abgesehen davon, dass du Verzeichnisse vermutlich auch ausgeben willst). Bei jedem Verzeichnis einfach die Funktion wieder aufrufen. Probier doch einfach mal. Du musst dir die aktuelle Ebene auch nicht merken. Am Ende landest du ja doch wieder im Root. 😉



  • Danke. Dann teste ich das erstmal. 🙂



  • von mir noch folgende Hinweise:

    - beim Iterieren eines Verzeichnisses bekommt man auch die Verzeichnisse "." und ".."
    - unter LINUX/UNIX können Dateien/Verzeichnisse beliebige Zeichen enthalten außer '/' und Nullzeichen '\0'
    - unter LINUX/UNIX können Datei-/Verzeichniss-Namen länger als PATH_MAX werden



  • Danke.


Anmelden zum Antworten