当我们想清理前端项目的历史资源时,一般前端项目的目录结构如下图所示,因此需要通过代码匹配到符合要求的文件夹目录,并进行清理

golang删除指定目录下的文件夹_nginx

核心逻辑分为3步:

1.读取指定目录下的文件和文件夹

2.遍历读取结果,根据结果进行相应的判断(下方示例中额外增加了两种判断)

3.符合判断条件的进行清理,不符合条件的跳过本次循环

deletePath := "/usr/share/nginx"
files, err := ioutil.ReadDir(deletePath)
if err != nil {
tracerr.Print(err)
return nil
}
for _, file := range files {
logs.Debug(file.Name())
//判断当前文件是否为目录;目录名称是否为14位时间戳格式;时间戳是否以202开头;该目录是否不存在于保留列表里
//如果上述条件均满足,则判定该文件夹为过期资源目录,进行清理
if file.IsDir() && len(file.Name()) == 14 && strings.HasPrefix(file.Name(), "202") && !strings.Contains(versionListStr, file.Name()) {
err = os.RemoveAll(filepath.Join(req.DeletePath,file.Name()))
if err != nil {
logs.Error(file.Name() + "删除失败!")
tracerr.Print(err)
return nil
}
}
}