我正在尝试遍历目录中的文件,并将其ModTime与特定日期进行比较,以便删除旧文件。
我正在使用ioutil.ReadDir()来获取文件但我仍然不知道如何检索每个文件的ModTime。
由于
答案 0 :(得分:6)
ioutil.ReadDir
的回复是([]os.FileInfo, error)
。您只需迭代[]os.FileInfo
切片并检查每个切片的ModTime()
。 ModTime()
会返回time.Time
,因此您可以以任何您认为合适的方式进行比较。
package main
import (
"fmt"
"io/ioutil"
"log"
"time"
)
var cutoff = 1 * time.Hour
func main() {
fileInfo, err := ioutil.ReadDir("/tmp")
if err != nil {
log.Fatal(err.Error())
}
now := time.Now()
for _, info := range fileInfo {
if diff := now.Sub(info.ModTime()); diff > cutoff {
fmt.Printf("Deleting %s which is %s old\n", info.Name(), diff)
}
}
}