Мне нужно указать все каталоги в некоторых папках в моем приложении. Для этого я написал что-то такого рода: (., И я знаю, что это должно быть -> вместо знака есть)проверить, если узел представляет каталог в C++
std::vector<std::string> FirefoxCleaner::_getDirs(std::string path) {
std::vector<std::string>* dirs = new std::vector<std::string>();
std::cout<<DT_DIR<<std::endl;
DIR *dir = opendir(path.c_str());
struct dirent *entry = readdir(dir);
while (entry != NULL) {
std::cout<<entry->d_name<<": "<<entry->d_type<<std::endl;
if (entry->d_type == DT_DIR) {
std::cout<<entry->d_name<<std::endl;
//dirs.push_back(entry->d_name);
}
entry = readdir(dir);
}
closedir(dir);
return *dirs;
}
Я прокомментировал push_back линии, потому что не нужен на данный момент , Тем не менее, хотя результат этого метода:
16
.: 24
..: 24
extensions: 24
lidv7pj1.default: 24
v0kmwatk.defaultextensions.ini: 24
Как вы можете себе представить, расширения и lidv7pj1.default фактически являются каталогами. Как я могу это определить?
Если все записи имеют 24, тогда все они имеют точно такое же представление бит, что и файл ini также рассматривается как каталог: / – Moby04