github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/os/fsi/dsfs/41_file_impl_fileinfo_sort.go (about) 1 package dsfs 2 3 import "os" 4 5 // byName implements sort.Interface. 6 type FileInfoByName []os.FileInfo 7 8 func (f FileInfoByName) Len() int { return len(f) } 9 func (f FileInfoByName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } 10 func (f FileInfoByName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } 11 12 type DsFileByName []DsFile 13 14 func (f DsFileByName) Len() int { return len(f) } 15 func (f DsFileByName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } 16 func (f DsFileByName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } 17 18 // 19 // 20 type FileInfoByDateAsc []os.FileInfo 21 22 func (f FileInfoByDateAsc) Len() int { return len(f) } 23 func (f FileInfoByDateAsc) Less(i, j int) bool { return f[i].ModTime().Before(f[j].ModTime()) } 24 func (f FileInfoByDateAsc) Swap(i, j int) { f[i], f[j] = f[j], f[i] } 25 26 type DsFileByDateAsc []DsFile 27 28 func (f DsFileByDateAsc) Len() int { return len(f) } 29 func (f DsFileByDateAsc) Less(i, j int) bool { return f[i].ModTime().Before(f[j].ModTime()) } 30 func (f DsFileByDateAsc) Swap(i, j int) { f[i], f[j] = f[j], f[i] } 31 32 // 33 // 34 type FileInfoByDateDesc []os.FileInfo 35 36 func (f FileInfoByDateDesc) Len() int { return len(f) } 37 func (f FileInfoByDateDesc) Less(i, j int) bool { return f[i].ModTime().After(f[j].ModTime()) } 38 func (f FileInfoByDateDesc) Swap(i, j int) { f[i], f[j] = f[j], f[i] } 39 40 type DsFileByDateDesc []DsFile 41 42 func (f DsFileByDateDesc) Len() int { return len(f) } 43 func (f DsFileByDateDesc) Less(i, j int) bool { return f[i].ModTime().After(f[j].ModTime()) } 44 func (f DsFileByDateDesc) Swap(i, j int) { f[i], f[j] = f[j], f[i] }