完成文件遍历、重命名
parent
6799e50ab1
commit
9c96d182d7
|
|
@ -0,0 +1 @@
|
||||||
|
rename
|
||||||
43
main.go
43
main.go
|
|
@ -2,6 +2,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/yinhui87/go-component/language"
|
"github.com/yinhui87/go-component/language"
|
||||||
|
|
@ -15,7 +17,7 @@ type episode struct {
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
episodeProvider := new(mockProvider)
|
episodeProvider := new(mockProvider)
|
||||||
epdatas, err := getEPData(episodeProvider, "av1742161")
|
epdatas, err := getEPData(episodeProvider, "av1742161", 143, 147)
|
||||||
// epdatas, err := getEPData(episodeProvider, "ep173262")
|
// epdatas, err := getEPData(episodeProvider, "ep173262")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
@ -23,6 +25,21 @@ func main() {
|
||||||
for i, epdata := range epdatas {
|
for i, epdata := range epdatas {
|
||||||
fmt.Printf("%dep %d Cid: %v, Title: %s\n", i, epdata.Index, epdata.Cid, epdata.Title)
|
fmt.Printf("%dep %d Cid: %v, Title: %s\n", i, epdata.Index, epdata.Cid, epdata.Title)
|
||||||
}
|
}
|
||||||
|
// 获取到所有集信息,开始准备文件
|
||||||
|
filenames, err := getFileList()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if len(filenames) != len(epdatas) {
|
||||||
|
panic(fmt.Errorf("file count[%d] diff with epdata count[%d]", len(filenames), len(epdatas)))
|
||||||
|
}
|
||||||
|
for i := 0; i < len(filenames); i++ {
|
||||||
|
epdata := epdatas[i]
|
||||||
|
fmt.Printf("file %s cid[%d] title is %s\n", filenames[i], epdata.Cid, epdata.Title)
|
||||||
|
newName := fmt.Sprintf("%s%s", epdata.Title, path.Ext(filenames[i]))
|
||||||
|
fmt.Println("rename ", filenames[i], " to ", newName)
|
||||||
|
os.Rename(filenames[i], newName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getEPData(provider EpisodeDataProvider, videoNo string, skipIndex ...int64) (episodes []episode, err error) {
|
func getEPData(provider EpisodeDataProvider, videoNo string, skipIndex ...int64) (episodes []episode, err error) {
|
||||||
|
|
@ -66,3 +83,27 @@ func getEPData(provider EpisodeDataProvider, videoNo string, skipIndex ...int64)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getFileList() (filenames []string, err error) {
|
||||||
|
pwd, err := os.Open(".")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
files, err := pwd.Readdir(0)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fileTimeMap := make(map[int]string)
|
||||||
|
var fileTimes []int
|
||||||
|
for _, fileInfo := range files {
|
||||||
|
if !fileInfo.IsDir() {
|
||||||
|
fileTimeMap[int(fileInfo.ModTime().Unix())] = fileInfo.Name()
|
||||||
|
fileTimes = append(fileTimes, int(fileInfo.ModTime().Unix()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fileTimes = language.ArraySort(fileTimes).([]int)
|
||||||
|
for _, t := range fileTimes {
|
||||||
|
filenames = append(filenames, fileTimeMap[t])
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue