我想,你應該自己實現它,因爲filepath.Walk
不允許你設置順序。
請看Walk方法。它叫walk,它依賴於readDirNames的文件名。所以基本上,你應該制定自己的Walk
方法與另一個readDirNames
邏輯。
這裏是你如何在最後修改日期的順序獲取文件(注意,說我忽略錯誤):
package main
import (
"fmt"
"os"
"sort"
)
type ByModTime []os.FileInfo
func (fis ByModTime) Len() int {
return len(fis)
}
func (fis ByModTime) Swap(i, j int) {
fis[i], fis[j] = fis[j], fis[i]
}
func (fis ByModTime) Less(i, j int) bool {
return fis[i].ModTime().Before(fis[j].ModTime())
}
func main() {
f, _ := os.Open("/")
fis, _ := f.Readdir(-1)
f.Close()
sort.Sort(ByModTime(fis))
for _, fi := range fis {
fmt.Println(fi.Name())
}
}
好樣的!你讓它變得比我想象的更簡單!謝謝! – xpt
優秀實施〜 –