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