import static groovy.io.FileType.*
def root = new File('/some/directory/here')
def tab = 0
root.traverse(
type : ANY,
preDir : { tab++ },
postDir : { tab-- }
) { f ->
(0..tab).each { print "|---" }
println "\\_" + f.name
}
Sample Result:
> groovy dirTree.groovy
|---\_.classpath
|---\_.project
|---\_.settings
|---|---\_org.eclipse.jdt.core.prefs
|---|---\_org.eclipse.jdt.groovy.core.prefs
|---\_bin
|---|---\_com
|---|---|---\_aquian
|---|---|---|---\_main
|---|---|---|---|---\_Main.class
|---|---|---|---\_modules
|---|---|---|---|---\_WriterModule.class
|---\_src
|---|---\_com
|---|---|---\_aquian
|---|---|---|---\_main
|---|---|---|---|---\_Main.groovy
|---|---|---|---\_modules
|---|---|---|---|---\_WriterModule.groovy