Veröffentlicht 21. Januar 200223 j Tach Leutz!!! Kann ich mit Ansi - C Befehlsreferenz feststellen ob ein Verzeichnis existent ist oder nicht??? Wenn ja wie??? Unter Dos geht das ja per "if exist c:\Gesucht\NULL [befehl]", mit C gehts halt nich so!!! Und der System Befehl gibt mir immer nur 0 zurück, d.h. "Befehl ausgeführt" egal ob das Verz. existent ist oder nicht. Danke im vorraus
22. Januar 200223 j #include <dirent.h> extern int errno; DIR *opendir(char * _dirname); Wenn DIR NULL ist, dann ist ein Fehler aufgetretten. Frag ma errno ab, um zu wissen, was da los ist. Wenn errno == ENOENT, dann existiert das Verzeichnis nicht. MfG
22. Januar 200223 j Mit der Funktion access . Unter Visual C heisst sie _acesss . Kann man testen, ob eine Verzeichnis, oder Datei existiert. opendir(...) finde ich persönlich nicht so toll für diesen Zweck, weil man im Erfolgsfall ja erst, das Verzeichnis wieder schließen muss. Der Aufruf der access-Funktion sollte auch schneller sein, weil das Verzeichnis ja nicht unnötig geöffnet wird. #include <io.h> #include <stdio.h> #include <stdlib.h> void main( void ) { /* Check for existence */ if( (_access( "TestVerzeichnis", 0 )) != -1 ) { printf( "Directory TestVerzeichnis exists\n" ); } } [/PHP] Das Beispiel ist leicht abgewandelt aus der MSDN übernommen.
22. Januar 200223 j Genau sowas hab ich gesucht!!!! Da ich aber nicht mit Visual C arbeite, steht mir auch leider die MSDN nicht zur Verfügung!!!! Ich hab so ein Kirmescompiler "PowerC" !!!! Kann ich mir die MSDN für Visual C irgendwo runterladen [freeware] oder muss ich dafür das Produkt kaufen???
22. Januar 200223 j Original geschrieben von naxos75 Kann ich mir die MSDN für Visual C irgendwo runterladen [freeware] oder muss ich dafür das Produkt kaufen??? Die MSDN ist Teil von Visual Studio. Muß also bezahlt werden, aber die gesamte MSDN steht auch im Internet: http://www.msdn.microsoft.com/library/. Dort ist sie natürlich frei verfügbar. Der Vorteil der Online-MSDN ist natürlich die Aktualität.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.