c++ Verzeichniszugriff unter linux

kle-ben

Erfahrenes Mitglied
Hi,

versuch mich gerade daran ein Programm zu schreiben, das in einem Unterordner[1] des
aktuellen Verzeichnis einen weiteren Unterordner[2] mit einem eingegebenen namen erstellt, und in diese einige dateien reinkopiert. Desweiteren sollen alle Namen der im
Unterordner[1] enthaltenen Unterodner[2] ausgelesen werden können.
Ich programiere unter Linux und beutzte SDL und TTF für die Ausgabe.
Ich dachte eigentlich das es in c++ Funktionen gibt um auf ordner zuzugreifen und
mit diesen zu arbeiten, aber ich konnte nichts der gleichen finden.

Allerdings bin ich überzeugt davon das es eine Lösung dafür gibt, ich weis
nur nicht wie sie heist. Vieleicht kannmir jemand weiterhelfen?

Gruß Benny
 
Hallo,

schau mal hier:

C:
#include <iostream>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>


using namespace std;

/**
 * shows directory content recursively of the given directory
 * @param dirname the pathname of the directory
 */
void browsedir(char* dirname){
    dirent* dir = NULL;
    DIR* dir_d = opendir(dirname);
    struct stat file_stat;

    if(dir_d == NULL){
        perror("Error while executing opendir(): ");
        exit(1);
    }

    if(chdir(dirname) < 0)
        perror("Error while executing chdir(): ");

    while((dir = readdir(dir_d)) != NULL){
        stat(dir->d_name, &file_stat);
        if(S_ISDIR(file_stat.st_mode)){
            if(strcmp(dir->d_name, ".") != 0 && strcmp(dir->d_name, "..") != 0){
                cout << "Directory: " << dir->d_name << endl;
                browsedir(dir->d_name);
            }
        }
        else cout << "Regular file: " << dir->d_name << endl;

    }
    closedir(dir_d);
}

int main(){
    browsedir("testdir");
}

Wenn du nähere Informationen brauchst sollten dir die man pages zu den Funktionen
Auskunft geben...
Eine Datei kopieren kannst du mit den Funktionen open, read, write, close.

Gruß

RedWing
 
Zurück