static void print_tree(eff::directory dir, string indent = "") { size_t lastfile = dir.file_count() - 1, lastdir = lastfile == size_t(-1)? dir.directory_count() - 1 : size_t(-1); size_t cur = 0; for (string dn = dir.first_directory(); !dn.empty(); dn = dir.next_directory()) { bool lastent = (cur++ == lastdir); cout << indent + (lastent? "╰ " : "├ ") << dn << endl; eff::directory d = dir.enter_new(dn); if (d.good()) print_tree(d, indent + (lastent? " " : "│ ")); else cout << "Could not enter" << endl; } cur = 0; for (string fn = dir.first_file(); !fn.empty(); fn = dir.next_file()) { bool lastent = (cur++ == lastfile); cout << indent << (lastent? "╰ " : "├ ") << fn << endl; } }