第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

GOLANG - 查找在日期范圍內(nèi)創(chuàng)建的文件

GOLANG - 查找在日期范圍內(nèi)創(chuàng)建的文件

Go
慕田峪7331174 2023-03-21 10:22:48
我想知道如何在日期范圍內(nèi)的特定文件夾中查找文件。例如:我想在文件夾 X 中查找在 01-Aug-13 和 31-Aug-13 之間創(chuàng)建的所有文件。我試過這個(gè):dir := "path/to/dir"t, err := time.Parse("2006-01-02T15:04:05-07:00", "2018-04-07T05:48:03+08:00")if err != nil {    panic(err)}paths, infos, err := FindFilesAfter(dir, t)if err != nil {    panic(err)}for i, _ := range paths {    checkFile(paths[i], infos[i])}func FindFilesAfter(dir string, t time.Time) (paths []string, infos []os.FileInfo, err error) {    err = filepath.Walk(dir, func(p string, i os.FileInfo, e error) error {        if e != nil {            return e        }        if !i.IsDir() && i.ModTime().After(t) {            paths = append(paths, p)            infos = append(infos, i)        }        return nil    })    return}
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

希望以下答案是您要找的。

  • 如果您的問題更多是關(guān)于時(shí)間范圍,您可以使用 functionBeforeAfterfrom timepackage

  • 如果您的問題更多是關(guān)于查找創(chuàng)建時(shí)間而不是修改時(shí)間。您可以考慮使用 package syscall 來查找 atime、mtime 和 ctime——本質(zhì)上它們是:

atime (access time) 是文件訪問時(shí)間

mtime(modify time)是文件修改時(shí)間

ctime(change time)是inode或者文件的改變時(shí)間

package main


import (

    "io/fs"

    "log"

    "os"

    "syscall"

    "time"

)


func main() {

    // prepare data

    start, _ := time.Parse(time.RFC3339, "2022-11-26T07:04:05Z")

    end, _ := time.Parse(time.RFC3339, "2022-11-26T08:10:00Z")

    var dir = "your path"


    files := FindFilesByDateRange(dir, start, end)


    // print result

    log.Printf("file range: %s-%s\n", start.Format(time.RFC3339), end.Format(time.RFC3339))

    for _, f := range files {

        log.Println(f.Name())

    }


}


func FindFilesByDateRange(dir string, start, end time.Time) []fs.FileInfo {

    fileSystem := os.DirFS(dir)

    var files []fs.FileInfo

    if err := fs.WalkDir(fileSystem, ".", func(path string, d fs.DirEntry, err error) error {

        if err != nil {

            log.Fatal(err)

        }

        fileInfo, err := d.Info()

        if err != nil {

            return err

        }

        stat := fileInfo.Sys().(*syscall.Stat_t)

        cDate := time.Unix(stat.Ctimespec.Sec, stat.Ctimespec.Nsec).UTC()

        if !d.IsDir() && (cDate.After(start) && cDate.Before(end)) {

            files = append(files, fileInfo)

        }

        return nil

    }); err != nil {

        return nil

    }

    return files

}


查看完整回答
反對 回復(fù) 2023-03-21
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)