Mercurial > dedupe
changeset 84:848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 10 Oct 2013 14:14:20 +0200 |
| parents | c17475848bf4 |
| children | 1f9e27a0bd7f |
| files | DataController.cpp |
| diffstat | 1 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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() <<std::endl; } - if (fs::is_regular_file(dir_iter->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); + } } } }
