`` Dir Tree `` Recursively, displays content of a directory and sub-directories /* syntax: dirtree [q] q = quiet, don't display content of subdirectories Enter a directory at prompt. It appears a value as \somedir or /somedir doesn't works (ask the OS makers for the reason) under windows, type: c:\somedir instead. */ enum STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH boolean QUIET = false void indent(int offset) for int o in 0.. offset echo " " return void dispdir(text level, int offset) dir mydir = opendir(level) int fcounter = 0 int dcounter = 0 number size = 0 do text t = readdir(mydir) if t = nil break if t[0] = "." continue text subdir = level + "/" + t if is_dir(subdir) = true //echo pad(" ", 12, " ") indent(offset) echo "<", t, ">", "\n" dcounter + 1 dispdir(subdir, offset+ 1) else if (QUIET = false) or (offset = 0) indent(offset) print pad(text(filesize(subdir)), 12," ", STR_PAD_RIGHT), t /if fcounter + 1 size + filesize(subdir) /if /do forever closedir(mydir) indent(offset) print pad(" ", 12, " "), '[', fcounter, "files,", dcounter, "directories ]", size, " bytes" return text mainlevel print "DirTree - www.scriptol.net" if $argc > 1 if $argv[1] = "q" let QUIET = true /if input "Directory? ", mainlevel if mainlevel = "." let mainlevel = getcwd() if mainlevel = nil let mainlevel = getcwd() print "-".dup(50) print " Dir tree of" , mainlevel print "-".dup(50) dispdir(mainlevel, 0) print "-".dup(50)