
Hi! On my Windows computer I have cygwin installed and it created the following file names in directory c:\ %backup%~ .emacs .emacs~ .tcltcinfo.txt The last file was created by some cygwin app. Now if I try to iterate through this directory: for(fs::directory_iterator dir_itr( full_path ), end_iter; dir_itr != end_iter; ++dir_itr) { try { if(!fs::is_directory(*dir_itr)) { std::pair<std::string, std::string> file_name( fs::basename(dir_itr->leaf()), fs::extension(dir_itr->leaf()) ); std::cout << "fname: " << file_name.first << ", extension: " << file_name.second << std::endl; } } catch(std::exception const& ex ) { std::cout << dir_itr->leaf() << " " << ex.what() << std::endl; } } Exceptions are thrown: %backup%~ boost::filesystem::path: invalid name "%backup%~" in path: "%backup%~" .emacs boost::filesystem::path: invalid name ".emacs" in path: ".emacs" .emacs~ boost::filesystem::path: invalid name ".emacs~" in path: ".emacs~" .tcltcinfo.txt boost::filesystem::path: invalid name ".tcltcinfo.txt" in path: ".tcltcinfo.txt" I know that it is impossible to create these file manually, but software is allowed to do this. Therefore I don't think these exceptions are correct. With Kind Regards, Ovanes Markarian