package utils import ( "fmt" "io/ioutil" "os" "path/filepath" "strings" ) func ByteSliceToString(b []byte) string { var ret string for i := 0; i < len(b); i++ { s := fmt.Sprintf("%02x", b[i]) ret += string(s) } return ret } func GetCurrentDirectory() string { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { return "./" } return strings.Replace(dir, "\\", "/", -1) } type FileDesc struct { Child []FileDesc `json:"child"` Types int32 `json:"types"` Name string `json:"name"` } func GetPathFileName(pathname string,desc *FileDesc) (error) { desc.Name = pathname desc.Child = make([]FileDesc,0) desc.Types = 1 // 1 means fileholder rd, err := ioutil.ReadDir(pathname) for _, fi := range rd { if fi.IsDir() { childdir := new (FileDesc) childdir.Types = 1 childdir.Name = fi.Name() GetPathFileName(pathname + fi.Name() + "\\",childdir) desc.Child = append(desc.Child,*childdir) } else { childdir := new (FileDesc) childdir.Types = 0 childdir.Name = fi.Name() desc.Child = append(desc.Child,*childdir) } } return err }