递归读取目录中所有文件和目录
// ReadDirAll 递归读取目录中所有文件和目录 func ReadDirAll(path string) ([]string, error) { var files []string err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error { if err != nil { return err } if !info.IsDir() { files = append(files, path) } return nil }) if err != nil { return nil, err } return files, nil }
只读取当前目录的文件和目录
// ReadDirCurrent 只读取当前目录的文件和目录 func ReadDirCurrent(path string) ([]string, []string, error) { var files, dirs []string dir, err := os.Open(path) if err != nil { return nil, nil, err } defer dir.Close() fileInfos, err := dir.Readdir(0) if err != nil { return nil, nil, err } for _, fileInfo := range fileInfos { if fileInfo.IsDir() { dirs = append(dirs, fileInfo.Name()) } else { files = append(dirs, fileInfo.Name()) } } return files, dirs, nil }