4

wav ファイルのみを選択し、それらのファイルの文字列のみを返すようなディレクトリ トラバーサー (例: wav ファイルのみ) を使用する良い方法を考えようとすると、いくつかの問題が発生します。サブディレクトリを調べる dirent.h を停止できます。文字列に .wav を含むファイルのみを許可する if ステートメントが必要なだけだと確信しています。

これまでのところ、私のコードは次のようになっています。ヘッダー ファイルの 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;

}

助けていただければ幸いです。私はそれほど難しいわけではありませんが、これまでのところ、理解できていません。

4

1 に答える 1

4

あなたが探しているソリューションがgithubにあります。

于 2012-04-26T15:36:11.550 に答える