2014-01-09 6 views
0

Я читаю все имена файлов из определенного каталога, используя эту функцию:имена Чтение файлов из директории

void getdir(std::string dir, std::list<std::string>& files) 
{ 
    DIR *dp; 
    struct dirent *dirp; 

    if((dp = opendir(dir.c_str())) == NULL) 
    { 
     std::cout<< "Error: path " << dir << " onbekend!\n"; 
    } 
    else 
    { 
     while ((dirp = readdir(dp)) != NULL) 
     { 
      files.push_back(std::string(dirp->d_name)); 
     } 
     closedir(dp); 
    } 
} 

Когда я распечатать их, я получаю ". или «..» тоже с именами файлов. Но файл '.' или «..» не находится в каталоге. Я использую ubuntu 12.04 :)

+2

Да, они есть. Попробуйте 'ls -la'. '.' является псевдонимом для текущего каталога и' ..' псевдоним для родителя. – Rup

+0

@ user2321611 - вы не задавали вопрос. – jww

+0

И каков ваш вопрос? –

ответ

1

. - это текущий каталог, а .. - родительский каталог, вы найдете их в каждом каталоге.

Смежные вопросы