Systemprogrammierung: Verzeichniszugriff + anschliessendes zugreifen auf ein Unterverzeichniss



  • Heyho Leute hab eine Frage zwecks der Programmierung in C ...

    Und zwar möchte ich auf eine gewählte Partition zugreifen und dieses soll mir Verzeichnis und Dateien ausgeben... Wenn Verzeichnisse auf der Partition sind soll er nochmal in das Verzeichnis reingehen und die Datein oder weiteren Unterverzeichnisse ausgeben... dies sollte rekursiv sein...

    Den ersten Teil hab ich ja schon mit Partition wählen + ausgeben der Dateien oder Verzeichnisse habe auch noch etwas versucht mit Inode Nummer und Bytes bzw KiloBytes ...

    Nun frage ich die Experten hier ob mir jemand bitte dabei helfen kann ...

    [cpp]

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <dirent.h>
    #include <sys/types.h>
    #include <sys/stat.h>

    int main(int argc, char** argv)
    {
    char verzeichnis[30];
    int i;
    DIR *d;
    struct dirent *eintrag;
    struct stat buf;
    char path[100];

    printf("Geben Sie eine Verzeichnis ein:");
    scanf("%s",verzeichnis);

    d = opendir(verzeichnis);

    eintrag = readdir(d);
    printf("%s\n",eintrag->d_name);
    eintrag = readdir(d);
    printf("%s\n",eintrag->d_name);

    i = 0;
    while((eintrag = readdir(d))!=NULL )
    {
    strcpy(path,verzeichnis);
    strcat(path,"/");
    strcat(path,eintrag->d_name);
    stat(path,&buf);
    if(S_ISREG(buf.st_mode))
    {
    printf("Datei: ");
    }
    if(S_ISDIR(buf.st_mode))
    {
    printf("Verzeichnis: ");
    }
    printf("%s (%d)byte\n",eintrag->d_name,buf.st_size);
    }
    return 0;

    }



  • Codetags sind da ganz gut für die Lesbarkeit ...



  • tut mir leid 😕 war bissl übereilt aber ich denke so schwer sollte mein programm nicht zu lesen sein ... werds mir aber für die zukunft merken ;))



  • Ist kein standard C, schubs das vielleicht mal eben jemand rüber 😃
    @TE
    Du kannst deinen Beitrag editieren und die Codetags nachliefern.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Extrahiere erstmal die Funktionalität, die du rekursiv aufrufen willst, als Funktion, sonst wirds schwierig.
    Überlege dir, was wohl der/die Parameter dieser Funktion sein könnten.
    Mache dir klar, was für Risiken Rekursion beinhaltet.


Anmelden zum Antworten