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)
}
}