Dateien sind Verzeichnisse



  • Hi Leutz,
    hab ein Problem mit meinem Progg!
    Ich will mit meinem Programm mein home-Verzeichniss auslesen,
    und mir dann den Dateiname und den Dateityp anzeigen lassen.
    Allerdings ist mein Programm der ansicht das alles in meinem
    home-Verzeichniss ein Verzeichniss ist. Kann mir einer sagen
    was ich falsch mache?

    Hier mein Quelltext:

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <dirent.h>
    #include <stdio.h>
    
    void main (void)
    {
     DIR *home = opendir("/home/Andreas/");
     struct dirent *dirzeiger;
     struct stat attribut;
    
     char *filetype = "Nix";
    
     if (home == NULL) {
      printf ("Error\n");
     }
    
     while((dirzeiger=readdir(home)) != NULL)
     {
      stat((*dirzeiger).d_name,&attribut);
    
      if (attribut.st_mode & S_IFREG) {
       filetype = "Reguläre Datei";
      }
      if (attribut.st_mode & S_IFDIR) {
       filetype = "Verzeichniss";
      }
      printf("%s\t%s\n",(*dirzeiger).d_name,filetype);
     }
    }
    

    Danke schon mal!
    BugBott



  • Bei mir funktioniert der Quelltext. Überprüf doch mal den Rückgabewert von stat().
    Führst du denn das Programm auch von /home/Andreas aus? Du musst bedenken das in d_name nur der Dateiname und nicht der komplette Pfad drinsteht (eine Sache die ich oft gerne vergessen bab).



  • Grüße DrGreenthumb,
    Danke!
    Wenn ich das Progg ins home-Verzeichniss kopiere und ausführe funktionierts!
    Muss also den Pfad selbst davorschreiben!

    Greetz
    BugBott


Anmelden zum Antworten