From 637cbf88acaba96c0833684b0d6332fa21bc82f3 Mon Sep 17 00:00:00 2001 From: Andreas Stallinger Date: Thu, 14 Apr 2016 16:38:46 +0200 Subject: [PATCH] fix: handle boost error while recursive directory iteration handle boostrecursive directory search error ption> --- src/lib/utility/file/FileSystem.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/utility/file/FileSystem.cpp b/src/lib/utility/file/FileSystem.cpp index a97c77b2..662193ee 100644 --- a/src/lib/utility/file/FileSystem.cpp +++ b/src/lib/utility/file/FileSystem.cpp @@ -73,15 +73,20 @@ std::vector FileSystem::getFileInfosFromPaths( { boost::filesystem::recursive_directory_iterator it(path.path()); boost::filesystem::recursive_directory_iterator endit; - while (it != endit) + boost::system::error_code ec; + for ( ; it != endit ; it.increment(ec) ) { + if (ec) + { + it.pop(); + continue; + } if (boost::filesystem::is_regular_file(*it) && hasExtension(it->path().string(), fileExtensions)) { std::time_t t = boost::filesystem::last_write_time(*it); boost::posix_time::ptime lastWriteTime = boost::posix_time::from_time_t(t); files.push_back(FileInfo(it->path(), lastWriteTime)); } - ++it; } } else if (path.exists() && path.hasExtension(fileExtensions))