var FileHelp = &fileHelp{}
type fileHelp struct {
}
// GetDirAllFilePath
// 获取目录下所有文件的相对路径
func (fileHelp *fileHelp) GetDirAllFilePath(dirPath string) []string {
var filePaths []string
// dfs 搜索
// 参数 dir 是文件目录
// 参数 pathPrefix 指递归的轨迹,表示目录的深度,用于拼接文件相对路径
var dfs func(dir, pathPrefix string)
dfs = func(dir, pathPrefix string) {
list, _ := ioutil.ReadDir(dir)
for _, item := range list {
// 如果不是目录,保存路径
if !item.IsDir() {
filePaths = append(filePaths, pathPrefix+item.Name())
} else {
// 如果是目录,递归找
nextDir := fmt.Sprintf("%s/%s", dir, item.Name())
nextParent := fmt.Sprintf("%s%s/", pathPrefix, item.Name())
dfs(nextDir, nextParent)
}
}
}
// 深度搜索目录
dfs(dirPath, "")
return filePaths
}
输出示例