1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <iostream>
#include "conio.h"
#include <iostream>
#include "string.h"
std::string str_replace(
std::string motif,
std::string remplacement,
std::string chaine
){
std::string sortie;
sortie=chaine;
for(int i=0;i<chaine.size();i++){
if(chaine.substr(i,motif.size())==motif){
sortie.erase(i,i+motif.size());
sortie.insert(i,remplacement.c_str());
}
}
return(sortie);
}
void list_dir(
const std::string & n_dossier
){
struct dirent *a;
DIR *dir;
std::string chemin;
char chemin_c;
chemin=n_dossier;
chemin=str_replace("\\","/",chemin);
if(chemin.substr(chemin.size()-1,1)!="/") chemin.insert(chemin.size(),"/");
dir = opendir(chemin.c_str());
while ((a = readdir(dir)))
{
if(strcmp(a->d_name,"..")==0 || strcmp(a->d_name,".")==0){} else {
if(opendir((chemin+a->d_name).c_str())){
std::cout << "<" << a->d_name << ">" << std::endl;
list_dir(chemin+a->d_name);
} else {
std::cout << a->d_name << std::endl;
}
}
}
closedir(dir);
}
int main(void){
std::string chemin;
std::cout << "Le chemin : " ;
std::cin >> chemin;
list_dir(chemin);
getch();
} |
Partager