package main
import (
"fmt"
"io/ioutil"
)
func WalkDir(filepath string) ([]string, error) {
files, err := ioutil.ReadDir(filepath) // files为当前目录下的所有文件名称【包括文件夹】
if err != nil {
return nil, err
}
var allfile []string
for _, v := range files{
fullPath := filepath + "\\" + v.Name() // 全路径 + 文件名称
if v.IsDir() { // 如果是目录
a, _ := WalkDir(fullPath) // 遍历改路径下的所有文件
allfile = append(allfile, a...)
}else{
allfile = append(allfile, fullPath) // 如果不是文件夹,就直接追加到路径下
}
}
return allfile, nil
}
func main() {
files, _ := WalkDir(`D:\docs\legal`)
for _, v := range files{
fmt.Println(v)
}
}
层次显示目录
package main
import (
"fmt"
"io/ioutil"
)
func WalkDir(filepath string, level int) ([]string, error) {
prefix := "|"
for i := 0; i < level ; i++ {
prefix += "------"
}
files, err := ioutil.ReadDir(filepath) // files为当前目录下的所有文件名称【包括文件夹】
if err != nil {
return nil, err
}
var allfile []string
for _, v := range files{
fullPath := filepath + "\\" + v.Name() // 全路径 + 文件名称
if v.IsDir() { // 如果是目录
allfile = append(allfile, prefix + v.Name())
a, _ := WalkDir(fullPath, level + 1) // 遍历改路径下的所有文件
allfile = append(allfile, a...)
}else{
allfile = append(allfile, prefix + v.Name()) // 如果不是文件夹,就直接追加到路径下
}
}
return allfile, nil
}
func main() {
files, _ := WalkDir(`D:\docs\legal`, 1)
for _, v := range files{
fmt.Println(v)
}
}