- auto i = boost::filesystem::recursive_directory_iterator(film->dir(film->dcp_name()));
- while (i != boost::filesystem::recursive_directory_iterator() && !boost::algorithm::starts_with(i->path().leaf().string(), prefix)) {
- ++i;
- }
+ using namespace boost::filesystem;
+
+ vector<directory_entry> matches;
+ std::copy_if(directory_iterator(film->dir(film->dcp_name())), directory_iterator(), std::back_inserter(matches), [&prefix](directory_entry const& entry) {
+ return boost::algorithm::starts_with(entry.path().leaf().string(), prefix);
+ });