package main
import (
"fmt"
"io/ioutil"
"sort"
"time"
)
type info struct {
Name string
Time time.Time
}
type newlist []*info
func main() {
l, e := getFilelist("./")
if e != nil {
fmt.Println(e)
}
sort.Sort(newlist(l)) //调用标准库的sort.Sort必需要先实现Len(),Less(),Swap() 三个方法.
for _, v := range l {
fmt.Println("文件名称:", v.Name, "改动时间:", v.Time.Unix())
}
}
func getFilelist(path string) ([]*info, error) {
l, err := ioutil.ReadDir(path)
if err != nil {
return []*info{}, err
}
var list []*info
for _, v := range l {
list = append(list, &info{v.Name(), v.ModTime()})
}
return list, nil
}
func (I newlist) Len() int {
return len(I)
}
func (I newlist) Less(i, j int) bool {
return I[i].Time.Unix() < I[j].Time.Unix()
}
func (I newlist) Swap(i, j int) {
I[i], I[j] = I[j], I[i]
}
转载于:https://www.cnblogs.com/brucemengbm/p/6958294.html
本文介绍了一个使用Go语言编写的程序,该程序能够读取指定目录下的所有文件,并按文件最后修改时间进行排序。通过自定义结构体和实现sort接口的方法,程序实现了文件信息的有效组织与展示。
608

被折叠的 条评论
为什么被折叠?



