Golang 删除文件并递归删除空目录
来源:互联网 发布:淘宝自带的折扣工具 编辑:程序博客网 时间:2024/06/13 00:32
Golang 删除文件并递归删除空目录
目的:删除文件之后,如果目录为空,递归删除为空的目录。
svr.dataDir指目录的最外层,递归删除目录的时候判断到这一层即可。
eg:/Users/danny/data
func deleteFileOnDisk(localPath string) { log.Debugf("remove file: %s", localPath) if err := os.Remove(localPath); err != nil { log.Error(err) } dirsList := make([]string, 0, 0) for dir := path.Dir(localPath); dir != svr.dataDir && len(dir) > len(svr.dataDir); dir = path.Dir(dir) { dirsList = append(dirsList, dir) } sort.StringSlice(dirsList).Sort() for i := len(dirsList) - 1; i >= 0; i-- { f, err := os.Open(dirsList[i]) if err != nil { log.Error(err) } fs, err2 := f.Readdirnames(1) if err2 == io.EOF && (fs == nil || len(fs) == 0) { f.Close() log.Debugf("remove dir: %s", dirsList[i]) if err := os.Remove(dirsList[i]); err != nil { log.Error(err) } continue } else if err2 != nil { log.Error(err2) } f.Close() }}
阅读全文
0 0
- Golang 删除文件并递归删除空目录
- 递归删除空目录
- 递归删除非空目录
- Ruby递归删除空目录
- 递归删除文件目录
- 递归删除文件目录
- linux系统调用之文件:递归删除非空目录
- linux系统调用之文件:递归删除非空目录
- shell 当前目录检测文件是否为空并删除
- java 删除文件(删除空目录)
- java实现递归删除非空目录
- 递归删除文件和目录
- 递归删除文件和目录
- 递归删除文件或目录
- Java递归删除目录文件
- python递归删除目录文件
- 递归删除目录及包含文件目录
- JavaIO之删除指定目录(递归删除,先删除目录下的文件再删除目录)
- 贝叶斯方法(实例1)——概率分布
- 智能指针学习
- 关于PHP基础的学习总结
- spring cloud和dubbo的区别
- 【mysql】索引
- Golang 删除文件并递归删除空目录
- 电子相册--简单版
- CentOS 6.8 安装MySql+GCC 编译
- * 24种设计模式——访问者模式
- 2017年8月2日,星期三
- Unity3d 获取网络时间
- P1010 幂次方
- hibernate的dtd包路径
- JAVA学习日记 2017.8.2