Advertisement
Guest User

suka

a guest
Jan 10th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.99 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "io/ioutil"
  6.     "os"
  7. )
  8.  
  9. var b, q, f string = `./`, `├───`, `└───`
  10. var n, p int = 1, 0
  11.  
  12. func printTree(p, a, idx, l int, s string) int {
  13.     if idx == 1 {
  14.         if a == l-1 {
  15.             fmt.Println(f + s)
  16.             return 0
  17.         }
  18.         fmt.Println(q + s)
  19.         return 0
  20.     }
  21.     w := ""
  22.     for x := 0; x < idx-p-1; x++ {
  23.         w += "│ "
  24.     }
  25.     for x := 0; x < p; x++ {
  26.         w += "  "
  27.     }
  28.     if a == l-1 {
  29.         fmt.Println(w + f + s)
  30.         return 0
  31.     } else {
  32.         fmt.Println(w + q + s)
  33.         return 0
  34.     }
  35. }
  36.  
  37. func tree(g []os.FileInfo, p int) {
  38.     for idx, file := range g {
  39.         printTree(p, idx, n, len(g), file.Name())
  40.         if file.IsDir() {
  41.             if idx == len(g)-1 {
  42.                 p++
  43.             }
  44.             n++
  45.             b1 := b
  46.             b += file.Name() + `/`
  47.             files, err := ioutil.ReadDir(b)
  48.             if err != nil {
  49.                 fmt.Print(err)
  50.             }
  51.             tree(files, p)
  52.             b = b1
  53.             n--
  54.             if p > 0 {
  55.                 p--
  56.             }
  57.         }
  58.     }
  59. }
  60.  
  61. func main() {
  62.     files, err := ioutil.ReadDir(".")
  63.     if err != nil {
  64.         fmt.Print(err)
  65.     }
  66.     tree(files, p)
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement