github.com/TrueBlocks/trueblocks-core/src/apps/chifra@v0.0.0-20241022031540-b362680128f7/pkg/file/modtime.go (about) 1 // Copyright 2021 The TrueBlocks Authors. All rights reserved. 2 // Use of this source code is governed by a license that can 3 // be found in the LICENSE file. 4 5 package file 6 7 import ( 8 "io/fs" 9 "os" 10 "path/filepath" 11 ) 12 13 func GetNewestInDirectory(directory string) (fileInfo os.FileInfo, err error) { 14 err = filepath.WalkDir(directory, func(path string, entry fs.DirEntry, err error) error { 15 if err != nil { 16 return err 17 } 18 if entry.IsDir() { 19 return nil 20 } 21 currentFileInfo, err := entry.Info() 22 if err != nil { 23 return err 24 } 25 if fileInfo == nil || currentFileInfo.ModTime().After(fileInfo.ModTime()) { 26 fileInfo = currentFileInfo 27 } 28 return nil 29 }) 30 return 31 } 32 33 func IsLaterThan(fn1, fn2 string) (bool, error) { 34 info1, err := os.Stat(fn1) 35 if err != nil { 36 return false, err 37 } 38 info2, err := os.Stat(fn2) 39 if err != nil { 40 return false, err 41 } 42 return info1.ModTime().After(info2.ModTime()), nil 43 } 44 45 // func getLastModTs(fileName string) (int64, error) { 46 // info, err := os.Stat(fileName) 47 // if err != nil { 48 // return 0, err 49 // } 50 // modTime := info.ModTime() 51 // return modTime.Unix(), nil 52 // }