I need latest file from subfolder. I have used os.readdir
Which is very fast ,but it is not giving me full file path…
How to achieve this.
I need latest file from subfolder. I have used os.readdir
Which is very fast ,but it is not giving me full file path…
How to achieve this.
Use filepath package, for example:
import (
"fmt"
"os"
"path/filepath"
)
files, _ = os.ReadDir(dir)
path, _ := filepath.Abs(dir)
for _, file := range files {
fmt.Println(filepath.Join(path, file.Name())
}
try this one:
type FileInfo struct {
os.FileInfo
FullPath string
}
func GetLatestFileInDir(dir string) (*FileInfo, error) {
var files []FileInfo
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() {
files = append(files, FileInfo{FileInfo: info, FullPath: path})
}
return nil
})
if err != nil {
return nil, err
}
if len(files) == 0 {
return nil, fmt.Errorf("no files found in directory %s", dir)
}
// Sort files by modification time
sort.Slice(files, func(i, j int) bool {
return files[i].ModTime().After(files[j].ModTime())
})
// Return the latest file
return &files[0], nil
}
Thank.
I have tried filepath.walk it is slow compre to readdir
I will check again
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.