1

アプリケーションのいくつかのフォルダーにあるすべてのディレクトリを一覧表示する必要があります。そうするために、私はこの種の何かを書きました:

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

ご想像のとおり、extensions と lidv7pj1.default は実際にはディレクトリです。どうすれば特定できますか?

4

1 に答える 1