喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]
根据文件下载创建时间,顺序重命名文件,方便后续播放。 源码如下:
package main import (
"fmt"
"io/ioutil"
"os"
"path"
"sort"
"strconv"
) //定义一个通用的结构体
type Bucket struct {
Slice []interface{} //承载以任意结构体为元素构成的Slice
By func(a,b interface{})bool //排序规则函数,当需要对新的结构体slice进行排序时,只需定义这个函数即可
}
/*
定义三个必须方法的准则:接收者不能为指针
*/
func (this Bucket)Len()int { return len(this.Slice)} func (this Bucket)Swap(i,j int){ this.Slice[i],this.Slice[j] = this.Slice[j],this.Slice[i] } func (this Bucket)Less(i,j int)bool { return this.By(this.Slice[i], this.Slice[j]) } type FileInfo struct {
name string `json:"name"`
time int64 `json:"time"`
} func main() {
filePath := "C:\\超品相师\\"
nameName := "超品相师"
num := int64(1) files, _ := ioutil.ReadDir(filePath) results := Bucket{} for _, f := range files {
ext := path.Ext(f.Name())
if ext ==".x2m" {
u := FileInfo{
name:f.Name(),
time: f.ModTime().Unix(),
}
results.Slice= append(results.Slice,u)
//fmt.Println(f.Name(), f.ModTime().Unix())
}
} time_by := func(a,b interface{})bool {
return a.(FileInfo).time<b.(FileInfo).time
}
results.By= time_by sort.Sort(results)
//fmt.Println(results.Slice) for _,n := range results.Slice { x2m_name := n.(FileInfo).name
m4a_name := x2m_name[0:len(x2m_name)-4] + ".m4a"
fmt.Println(m4a_name) b := strconv.FormatInt(num, 10)
switch {
case num < 10 && num >= 1:
b = "000" + b
case num < 100 && num >= 10:
b = "00" + b
case num < 1000 && num >= 100:
b = "0" + b
}
os.Rename(filePath + m4a_name, filePath + nameName + b +".m4a")
num ++
}
}

golang结构体排序 - 根据下载时间重命名本地文件的更多相关文章

  1. golang结构体json格式化的时间格式

    golang结构体json格式化的时间格式 在我们开发中,经常会解析time.Time 往往前台传过来的时候,是个string 但是我们希望在结构体转成time.Time type Param str ...

  2. golang 结构体中的匿名接口

    golang 结构体中的匿名接口 代码示例 golang 中,可以给结构体增加匿名field,可参考 unknwon 大神的书. 匿名字段和内嵌结构体 但,golang同时也可以给结构体定义一个匿名i ...

  3. <algorithm>里的sort函数对结构体排序

    题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...

  4. JustOj 2039: 成绩排名 (结构体排序)

    题目描述 每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差.所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名.(PS:大豪哥班上有个学霸名叫日天, ...

  5. 第m大的身份证号码(局部排序代全局、结构体排序)

    第m大的身份证号码(点击) 时间限制: 1 Sec  内存限制: 128 MB                                                             ...

  6. 小球(总结sort和cmp函数、结构体排序)

    问题 N: 小球(点击) 时间限制: 1 Sec  内存限制: 128 MB                                                               ...

  7. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...

  9. 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

    sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...

随机推荐

  1. 洛谷P3354 [IOI2005]Riv 河流——“承诺”DP

    题目:https://www.luogu.org/problemnew/show/P3354 状态中要记录一个“承诺”,只需相同承诺之间相互转移即可: 然后就是树形DP的套路了. 代码如下: #inc ...

  2. vue 随笔3

    在整个vue项目中index.js只能有一个 ,创建vue组件实例的代码只能写在main.js中或者index.js中,别的文件中都是使用export default 常量 或者是方法

  3. bzoj1304

    树形dp 题目是要求最深的颜色 先开始觉得设dp[i][0/1/2]表示这个点的状态,然后发现没办法保证该点是最深的点,且dp状态没有实际意义,其实dp[i][0/1]表示当前i的子树颜色为c^1的叶 ...

  4. python 字典 dict items values keys

    dict.items() 1 >>> d = dict(one=1,two=2) 2 >>> it1 = d.items() 3 >>> it1 ...

  5. springboot(十二) SpringBoot 性能优化

    代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo springboot优化主要有三类优化:1.包扫描优化 2. ...

  6. 进程与线程(3)- python实现多线程

    参考链接: https://www.jianshu.com/p/415976668b97?utm_campaign=maleskine&utm_content=note&utm_med ...

  7. Codeforces Round #544 (Div. 3) C. Balanced Team

    链接:https://codeforces.com/contest/1133/problem/C 题意: 给n个数, 在这n个数中选最多n个数,来组成一个队伍. 保证这n个数的最大最小差值不大于5. ...

  8. linux下使用svn创建版本库和权限管理

    linux上的svn服务端如何和本地的电脑客户端结合使用 Linux上安装SVN服务器: 第一步:检查是否已安装 # rpm -qa subversion 第二步: 通过yum命令安装svnserve ...

  9. 抽象类 abstract

    抽象类就是拿来继承的抽象方法就是拿来重写的 1.用abstract可以用来修饰类或方法,分别叫抽象类和抽象方法. 2.含有抽象方法的类必须被声明为抽象类.,抽象类必须被继承,抽象方法也必须被重写. 3 ...

  10. 502 IPO 上市

    详见:https://leetcode.com/problems/ipo/description/ C++: class Solution { public: int findMaximizedCap ...