JoshDreamland icon

print_tree

JoshDreamland | PRO | 06/28/14 12:42:35 AM UTC | 0 ⭐ | 387 👁️ | Never ⏰ | []
C++ |

750 B

|

None

|

0 👍

/

0 👎

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;
  }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎