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  // }