クラスrecursive_directory_iteratorのおかげで、新しいブーストv1.5.3を使用して、次のようなこのタスクを実行しています(再帰コードを記述する必要はありません)。
void ListDirRec(const char *Dir, vector<string>& DirFileList, const char* ext)
{
recursive_directory_iterator rdi(Dir);
recursive_directory_iterator end_rdi;
DirFileList.empty();
string ext_str0(ext);
for (; rdi != end_rdi; rdi++)
{
rdi++;
//cout << (*di).path().string() << endl;
cout << (*rdi).path().string() << endl;
//cout << " <----- " << (*rdi).path().extension() << endl;
//string ext_str1 = (*rdi).path().extension().string();
if (ext_str0.compare((*rdi).path().extension().string()) == 0)
{
DirFileList.push_back((*rdi).path().string());
}
}
特定の拡張子を持つ関数リストファイル。この関数はケースで機能しますが、次のような「アサーション失敗エラー」を頻繁に返します。
**** Internal program error - .... assertion (m_imp.get()) ... operations.hpp(952): dereference of end recursive_directory_iterator
このエラーの原因はほとんどわかりません。何か試してみることができますか..助けをキャッチしますか?助けてくれてありがとう