Posted to tcl by aspect at Thu Jul 14 07:02:30 GMT 2011view pretty

proc ls-R {path} {
    set result {}
    foreach item [glob -nocomplain -directory $path *] {
        if {[file isdirectory [file join $path $item]]} {
            dict set result $item [ls-R [file join $path $item]]
        } else {
            dict set result $item {}
        }
    }
    return $result
}

puts [ls-R [lindex $argv 0]]