Verzeichnis prüfen ?
-
Guten Tag zusammen,
ich wollte mich mal schlau machen, wie ich am einfachsten prüfen kann, ob ein bestimmtes Verzeichnis existiert oder nicht !Liebe Grüße Yellow
-
Yellowblue schrieb:
wie ich am einfachsten prüfen kann, ob ein bestimmtes Verzeichnis existiert oder nicht !
Indem du uns dein Betriebssystem verrätst oder gleich im entsprechenden Unterforum fragst.
-
Ich beginne gerade mit C und programmiere unter Linux / Ubuntu 10.04..
Lieben Dank
-
-
struct stat st; if(stat("/tmp",&st) == 0) printf(" /tmp is present\n");
Ok aber welche includes benötige ich dafür ?
Lieben Gruß
-
So könnte man das machen. Geht natürlich nur unter linuxartigen Systemen.
#include <stdio.h> #include <sys/stat.h> // Linux-Header für Dateieigenschaften int main() { const char name[]="/home/text/example"; struct stat stat_buf; // Datentyp für Dateieigenschaften if (stat(name, &stat_buf) == 0) // Wenn 0, dann existiert name { printf("%s existiert", name); // Aber es könnte auch eine Datei sein. // Dazu kann man die Eigenschaften prüfen: if (stat_buf.st_mode & S_IFDIR) printf(" und ist ein Verzeichnis.\n"); else printf(", aber ist kein Verzeichnis.\n"); } else printf("%s existiert nicht.\n", name); }
mehr Information zu stat (aber nur bedingt anfängertauglich
):
http://opengroup.org/onlinepubs/007908775/xsh/stat.htmledit: Da habe ich ein bisschen lange gebraucht für das Beispiel und nicht gesehen, dass du die Antwort inzwischen hast. Ich hoffe es hilft trotzdem.
-
Ok, hab das jetzt mal so bewältigt, was auch funktioniert.
Aber wieso bekomme ich beim compilieren trotzdem deine Fehlermeldung:verzeichnischeck.c:36: warning: left-hand operand of comma expression has no effect
Lieben Gruß und danke
-
Hups, wohl den code vergessen
#include <sys/stat.h> #include <stdio.h> int main(void) { char ver[200]; printf("verzeichnis eingeben: \n"); scanf("%s",ver); struct stat st; if(stat( ("%s",ver),&st) == 0) printf("Verzeichnis existiert\n"); else { printf("Verzeichnis NICHT gefunden\n"); } return 0; }
-
Konnte das Problem selbst finden, danke für den super Post.
if(stat (ver,&st) == 0)
Lieben Dank euch allen, klasse Forum
-
Das was du da versucht hast funktioniert übrigens nur bei printf und sprintf. Es ist in C ansonsten nicht möglich, auf diese Weise Zeichenketten zu formatieren.