Testen ob ein Verzeichnis existiert
-
Wie kann ich in c++ rauskreigen, ob ein String ein Verzeichnis ist. Bisher versuch ich eine Datei in dem Verzeichnis zu erstellen und teste das Ergebnis, aber die Lösung gefällt mir nicht ganz.
-
Wie wärs mit opendir(...) ? Liefer NULL zurück wenn Verzeichnis nicht geöffnet werden kann bzw nicht vorhanden ist. Es ist allerdings eine C-funktion.
Oder chdir(const char *pfad) liefert -1 wenn in ein verzeichniss nicht gewechselt werden kann.
stat(const char *path, struct stat *buf) fällt mir noch ein.
-
Beides nicht optimal, ich würde einfach boosts is_directory verwenden.
-
noch ne variante: stat(3)
-
So hab ich mir das mal gebastelt, ist sicher suboptimal (besonders wg. dem string Parameter), aber wer kopiert schon alles was er findet
?
// bool exists (string dir) { // handle to directory DIR* directory; // add needed / if (dir[dir.size()-1] != '/') dir += "/"; // if i can't open the directory it doesn't exist (or has insufficent // access rights) if ( (directory = opendir (dir.c_str())) == NULL ) return false; // it's there! closedir (directory); return true; }
-
So viel Mühe für mir, danke scheen