JoshDreamland

print_tree

Jun 27th, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.75 KB | None | 0 0
  1. static void print_tree(eff::directory dir, string indent = "") {
  2.   size_t lastfile = dir.file_count() - 1, lastdir = lastfile == size_t(-1)? dir.directory_count() - 1 : size_t(-1);
  3.   size_t cur = 0;
  4.   for (string dn = dir.first_directory(); !dn.empty(); dn = dir.next_directory()) {
  5.     bool lastent = (cur++ == lastdir);
  6.     cout << indent + (lastent? "╰ " : "├ ") << dn << endl;
  7.     eff::directory d = dir.enter_new(dn);
  8.     if (d.good())
  9.       print_tree(d, indent + (lastent? " " : "│ "));
  10.     else
  11.       cout << "Could not enter" << endl;
  12.   }
  13.   cur = 0;
  14.   for (string fn = dir.first_file(); !fn.empty(); fn = dir.next_file()) {
  15.     bool lastent = (cur++ == lastfile);
  16.     cout << indent << (lastent? "╰ " : "├ ") << fn << endl;
  17.   }
  18. }
Advertisement
Add Comment
Please, Sign In to add comment