Go:如何遍历文件并将ModTime与日期进行比较?

时间:2015-02-23 19:28:59

标签: go

我正在尝试遍历目录中的文件,并将其ModTime与特定日期进行比较,以便删除旧文件。

我正在使用ioutil.ReadDir()来获取文件但我仍然不知道如何检索每个文件的ModTime。

由于

1 个答案:

答案 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)
        }
    }
}