golang中怎么利用递归构建一个无限级树状目录
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,golang中怎么利用递归构建一个无限级树状目录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。package maini
千家信息网最后更新 2025年12月02日golang中怎么利用递归构建一个无限级树状目录
golang中怎么利用递归构建一个无限级树状目录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
package mainimport ( "encoding/json" "fmt" "os" "path/filepath" "sort")func main() { rootpath := "D:\\projects" root := FileNode{"projects", rootpath, []*FileNode{}} fileInfo, _ := os.Lstat(rootpath) walk(rootpath, fileInfo, &root) data, _ := json.Marshal(root) fmt.Printf("%s", data)}type FileNode struct { Name string `json:"name"` Path string `json:"path"` FileNodes []*FileNode `json:"children"`}func walk(path string, info os.FileInfo, node *FileNode) { // 列出当前目录下的所有目录、文件 files := listFiles(path) // 遍历这些文件 for _, filename := range files { // 拼接全路径 fpath := filepath.Join(path, filename) // 构造文件结构 fio, _ := os.Lstat(fpath) // 将当前文件作为子节点添加到目录下 child := FileNode{filename, fpath, []*FileNode{}} node.FileNodes = append(node.FileNodes, &child) // 如果遍历的当前文件是个目录,则进入该目录进行递归 if fio.IsDir() { walk(fpath, fio, &child) } } return}func listFiles(dirname string) []string { f, _ := os.Open(dirname) names, _ := f.Readdirnames(-1) f.Close() sort.Strings(names) return names}看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
目录
文件
递归
帮助
清楚
内容
对此
文章
新手
更多
知识
结构
节点
行业
资讯
资讯频道
路径
难题
需求
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新疆泰克软件开发有限公司首页
软件开发资格条件
自适应网络技术
数据库编修改语句
软件开发9大知识领域
网络技术都能应聘哪些职位
聚焦网络安全和金融安全文章
宁波市鄞州区互联网科技
去苏宁做软件开发怎么样
软件开发概要设计
网络安全网监局
tbc怀旧服总共多少服务器
中云世源北京网络技术有限公司
马来西亚服务器免投诉
彩虹六号异种联机靠是服务器还是主机
网络数据库技术是什么
asp数据库 语句注释
数据库中英国是什么关系
国家表 数据库
达梦数据库导出数据为什么是只读
但未找到软件数据库
网络技术填空题分大小写吗
福建平联网络技术有限公司
宁波专业软件开发
如何做到网络安全消费
上海红色文化数据库
查数据库之后排序
Oracle数据库逻辑导出
竹山好的软件开发学习
赵建锋互联网科技教育平台