Dirent.h - 获取具有特定扩展名的文件的字符串

时间:2012-04-26 14:55:53

标签: c++

有一些问题试图想出一个很好的方法来创建一个目录遍历器,它只会选择wav文件并返回这些文件的字符串,例如只是wav文件。我可以停止dirent.h查看子目录,我很确定我只需要一个if语句,只允许在字符串中包含.wav的文件

到目前为止,我的代码看起来像这样,我只是扩展了一些我在wiki页面上看到的头文件示例:

ifstream fin;
string dir, filepath;
DIR *dp;
struct dirent *dirp;
struct stat filestat;


cout << "dir to get files of: " << flush;

getline(cin, dir);

dp = opendir( dir.c_str() );

if (dp == NULL){

    cout << "Error(" << errno << ") opening " << dir << endl;

    }

while ((dirp = readdir( dp ))){

    filepath = dir + "/" + dirp->d_name;

    if (stat( filepath.c_str(), &filestat )) continue;
    if (S_ISDIR( filestat.st_mode ))         continue;

    fin.open( filepath.c_str() );

    stringVec.push_back(filepath);

    fin.close();

    }

closedir( dp );

for(int i=0;i<stringVec.size();i++){
    cout << stringVec[i] << endl;

}

任何帮助表示赞赏,我不是很难 - 但到目前为止我还没弄清楚。

1 个答案:

答案 0 :(得分:3)

我在github上找到了您正在寻找的解决方案。