待完善

因为目前是三次结构,所以没有使用递归去完成
// 时间
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)
	}
}
转载