# HG changeset patch # User Tom Fredrik Blenning Klaussen # Date 1381407260 -7200 # Node ID 848496a57039bd2ba22406ae1af512539cf37e9a # Parent c17475848bf4ba2a8986c38c6dfc77bde4f9638d If a filepath cannot be interpreted, make this a non-critical error. diff -r c17475848bf4 -r 848496a57039 DataController.cpp --- a/DataController.cpp Thu Oct 10 14:13:54 2013 +0200 +++ b/DataController.cpp Thu Oct 10 14:14:20 2013 +0200 @@ -30,15 +30,26 @@ namespace fs = boost::filesystem; fs::path someDir(dir.path().toStdString()); fs::directory_iterator end_iter; + boost::system::error_code ec; if ( fs::exists(someDir) && fs::is_directory(someDir)) { - for( fs::directory_iterator dir_iter(someDir) ; + for( fs::directory_iterator dir_iter(someDir, ec) ; dir_iter != end_iter ; ++dir_iter) { - if (fs::is_directory(dir_iter->status()) ) { - findFiles(QString::fromStdWString(dir_iter->path().wstring()), list); + std::wstring wpath; + try { + wpath = dir_iter->path().wstring(); + } + catch (boost::system::system_error &e) { + printf("%s\n", dir_iter->path().c_str()); + std::cout << e.what() <status()) ) { - list << QString::fromStdWString(dir_iter->path().wstring()); + if (!wpath.empty()) { + if (fs::is_directory(dir_iter->status()) ) { + findFiles(QString::fromStdWString(wpath), list); + } + if (fs::is_regular_file(dir_iter->status()) ) { + list << QString::fromStdWString(wpath); + } } } }