之前写的https://www.cnblogs.com/pu369/p/10620731.html一文中,也有对slice的排序,但代码乱的自己也看不下去了。

参考https://blog.csdn.net/zhangyexinaisurui/article/details/82688618准备读目录,并按时间排序

一、与参考内容一样,直接读目录,默认是按名字排序

package main

import (
"fmt"
"io/ioutil"
) func listAll(path string, curHier int) {
readerInfos, err := ioutil.ReadDir(path)
if err != nil {
fmt.Println(err)
return
}
for _, info := range readerInfos {
if info.IsDir() {
for tmpheir := curHier; tmpheir > ; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name(), "\\")
listAll(path+"\\"+info.Name(), curHier+)
} else {
for tmpheir := curHier; tmpheir > ; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name(), " ", info.ModTime())
}
}
}
func main() {
// dir := os.Args[1]
dir := "I:/img"
listAll(dir, )
}

二、改为按[]os.FileInfo的 info.ModTime()排序

package main

import (
"fmt"
"io/ioutil"
"os"
"sort"
) func listAll(path string, curHier int) {
readerInfos, err := ioutil.ReadDir(path)
if err != nil {
fmt.Println(err)
return
}
readerInfos1 := sortByTime(readerInfos)
for _, info := range readerInfos1 {
if info.IsDir() {
for tmpheir := curHier; tmpheir > ; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name(), "\\")
listAll(path+"\\"+info.Name(), curHier+)
} else {
for tmpheir := curHier; tmpheir > ; tmpheir-- {
fmt.Printf("|\t")
}
fmt.Println(info.Name(), " ", info.ModTime())
}
}
}
func main() {
// dir := os.Args[1]
dir := "I:/img"
listAll(dir, )
}
func sortByTime(pl []os.FileInfo) []os.FileInfo {
sort.Slice(pl, func(i, j int) bool {
flag := false
if pl[i].ModTime().After(pl[j].ModTime()) {
flag = true
} else if pl[i].ModTime().Equal(pl[j].ModTime()) {
if pl[i].Name() < pl[j].Name() {
flag = true
}
}
return flag
})
return pl
}

最新文章

  1. 微信公众账号 token 验证失败 解决办法
  2. iOS UIAlertController
  3. windows上JSP开发环境全搭建
  4. FPGA学习
  5. shell脚本判断文件类型
  6. iOS UIImage DownLoad图片的下载缓存全部在此
  7. [POJ2828]Buy Tickets(线段树,单点更新,二分,逆序)
  8. swift基础--运算符
  9. 【23】宁以non-member、non-friend替换member函数
  10. 深入理解 Javascript 面向对象编程(转)
  11. centos永久修改主机名
  12. 判定程序员等级,HashMap就够了
  13. sql语句表示不等于
  14. 解决内存不能为read错误
  15. eclpse安装jetty插件
  16. div 只显示两行超出部分隐藏
  17. 微信小程序--修改data数组或对象里面的值
  18. POJ 2352 数星星
  19. 【代码笔记】iOS-NSLog的使用
  20. HDU-3507 Print Article (斜率优化)

热门文章

  1. 从入门到自闭之Python--Django Rest_Framework
  2. Python编程之注释
  3. Java中的自动拆装箱(转)
  4. Docker结合Jenkins构建持续集成环境
  5. python模块-paramiko-修改源码(demo实例)
  6. luogu P2765 魔术球问题 (最小路径覆盖)
  7. 3-Perl 基础语法
  8. vs2010 回车、退格键等不能用
  9. 【原创】大数据基础之Oozie(4)oozie使用的spark版本升级
  10. Tika提取文件元数据