Go 递归删除空目录
这个可以通过shell
脚本来达到目的。
find -type d -empty|xrags rmdir
写这个是因为有个 windows 的服务器,又不熟悉批处理和powershell脚本,就写了这么个玩意,放在这里做个记录。
package main import ( "fmt" "io/ioutil" "os" "path" ) func findEmptyFolder(dirname string) (emptys []string, err error) { // Golang学习 - io/ioutil 包 // https://www.cnblogs.com/golove/p/3278444.html files, err := ioutil.ReadDir(dirname) if err != nil { return nil, err } // 判断底下是否有文件 if len(files) == 0 { return []string{dirname}, nil } for _, file := range files { if file.IsDir() { edirs, err := findEmptyFolder(path.Join(dirname, file.Name())) if err != nil { return nil, err } if edirs != nil { emptys = append(emptys, edirs...) } } } return emptys, nil } func main() { if len(os.Args) != 2 { fmt.Println("Usage:", os.Args[0], "起始路径") return } emptys, err := findEmptyFolder(os.Args[1]) if err != nil { fmt.Println(err.Error()) return } for _, dir := range emptys { if err := os.Remove(dir); err != nil { fmt.Println("错误:", err.Error()) } else { fmt.Println("删除成功:", dir) } } }
分类:
Golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理