4
wavファイルのみを選択し、それらのファイルの文字列を排他的に返すディレクトリトラバーサを持つ良い方法を考えようといくつかの問題があります。ちょうどwavファイル。私はdirent.hのサブディレクトリを見るのを止めることができます。文字列に.wavを含むファイルしか許可しないif文が必要です。Dirent.h - 特定の拡張子を持つファイルの文字列を排他的に取得
これまでのコードはこれまでのところ、ヘッダファイルのための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;
}
すべてのヘルプ感謝、私はそのスーパー難しくありませんよ。
http://stackoverflow.com/questions/874134/find-if-string-endswith-another-string-in-cを使用して、ファイル名が.wavで終わるかどうかを確認してください。 – user786653
'if(!S_ISREG(filestat。 st_mode)) ';あなたの '.wav'ファイルは、ソケット、文字またはブロック特殊デバイス、FIFOなどではありません。その後、あるいは' stat'ベースのチェックの前に、名前の最後の4文字が '.wav '。 –