待完善
因为目前是三次结构,所以没有使用递归去完成
// 时间
const clearLogForwardUnix int64 = 60 * 60 * 24 * 2
// 循环删除文件
func forEachOsGwtWd() {
//获取当前目录//获取文件或目录相关信息
wdd, _ := os.Getwd()
wd := wdd + "/data/log/"
dirLog := [3]string{"api", "web", "webError"}
// 循环api web webError 外层
for x := range dirLog {
wdOne := wd + "/" + dirLog[x]
fileInfoList, _ := ioutil.ReadDir(wdOne)
// 循环里面的一层
for i := range fileInfoList {
// 判断文件是否空的
if fileInfoList[i].Size() == 64 || (time.Now().Unix()-clearLogForwardUnix) > fileInfoList[i].ModTime().Unix() {
delFile(wdOne+"/"+fileInfoList[i].Name(), fileInfoList[i].IsDir())
continue
}
// 循环文件夹里面的文件
if fileInfoList[i].IsDir() && fileInfoList[i].Size() != 64 {
chdir := wdOne + "/" + fileInfoList[i].Name()
chdirFileInfoList, _ := ioutil.ReadDir(chdir)
for a := range chdirFileInfoList {
if (time.Now().Unix() - clearLogForwardUnix) > chdirFileInfoList[a].ModTime().Unix() {
delFile(chdir+"/"+chdirFileInfoList[a].Name(), chdirFileInfoList[a].IsDir())
}
}
}
}
}
}
// 删除文件
func delFile(str string, i bool) {
fmt.Println("delFile ClearingExpiredLogs ---- START", str)
// 文件夹
if i {
_ = os.RemoveAll(str)
} else {
_ = os.RemoveAll(str)
}
}
转载