Ordner durchsuchen
-
Hallo,
hab schon einige Foren abgeklappert, aber nichts zu o.g. Thema gefunden.
Kann mir jemand sagen, ob es Funktionen gibt, mit denen man Ordner durchsuchen kann, also die Namen der Ordner und Dateien darin lesen kann, in Ordner wechseln, eine Ebene höher springen u.s.w. kann?Gruß
snami
-
Hallo,
Nicht (Derzeit) in StandardC++. Du könntest z.Bsp. boost::filesystem nutzen oder die Funktionen deine Betriebssystem-API.
-
zufällig habe ich neulich dasselbe gesucht und bei koders irgendwo gefunden:
dir.h:
#include <stddef.h> #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <vector> #include <iostream> #include <string> using namespace std; class dir { private: DIR *dp; struct dirent *ep; vector<string> dir_vec; public: dir(); ~dir(); bool open_dir( char *c_dir ); bool open_dir( string &s_dir ); void close_dir(); void read_dir(); vector<string> get_dir_vec(); };dir.cpp:
#include "dir.h" using namespace std; dir::dir() { } dir::~dir() { dir_vec.clear(); // if ( dp ) // delete dp; if ( ep ) delete ep; } bool dir::open_dir( char *c_dir ) { return open_dir( *new string( c_dir ) ); } bool dir::open_dir( string &s_dir ) { dp = opendir( s_dir.c_str() ); if ( dp == NULL ) return false; // Could not open dir. return true; // Could open dir with success. } void dir::close_dir() { if ( dp != NULL ) closedir( dp ); } void dir::read_dir() { if ( dp != NULL ) while( ep = readdir( dp ) ) dir_vec.push_back( string( ep->d_name ) ); } vector<string> dir::get_dir_vec() { return dir_vec; }hat mir eigentlich ausgereicht.
cya