1. MY下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]
    根据文件下载创建时间,顺序重命名文件,方便后续播放。
  2.  
  3. 源码如下:
    package main
  4.  
  5. import (
    "fmt"
    "io/ioutil"
    "os"
    "path"
    "sort"
    "strconv"
    )
  6.  
  7. //定义一个通用的结构体
    type Bucket struct {
    Slice []interface{} //承载以任意结构体为元素构成的Slice
    By func(a,b interface{})bool //排序规则函数,当需要对新的结构体slice进行排序时,只需定义这个函数即可
    }
    /*
    定义三个必须方法的准则:接收者不能为指针
    */
    func (this Bucket)Len()int { return len(this.Slice)}
  8.  
  9. func (this Bucket)Swap(i,j int){ this.Slice[i],this.Slice[j] = this.Slice[j],this.Slice[i] }
  10.  
  11. func (this Bucket)Less(i,j int)bool { return this.By(this.Slice[i], this.Slice[j]) }
  12.  
  13. type FileInfo struct {
    name string `json:"name"`
    time int64 `json:"time"`
    }
  14.  
  15. func main() {
    filePath := "C:\\超品相师\\"
    nameName := "超品相师"
    num := int64(1)
  16.  
  17. files, _ := ioutil.ReadDir(filePath)
  18.  
  19. results := Bucket{}
  20.  
  21. 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())
    }
    }
  22.  
  23. time_by := func(a,b interface{})bool {
    return a.(FileInfo).time<b.(FileInfo).time
    }
    results.By= time_by
  24.  
  25. sort.Sort(results)
    //fmt.Println(results.Slice)
  26.  
  27. for _,n := range results.Slice {
  28.  
  29. x2m_name := n.(FileInfo).name
    m4a_name := x2m_name[0:len(x2m_name)-4] + ".m4a"
    fmt.Println(m4a_name)
  30.  
  31. 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. codeforces round 421 div2 补题 CF 820 A-E

    A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...

  2. @font-face 用fontsquirrel把ttf文件获取别的文件格式

    @font-face是css3的一个模块,但是@font-face这个功能早在IE4就支持了,他主要是把自己定义的Web字体嵌入到你的网页中, @font-face { font-family: &l ...

  3. juju入门

    https://jujucharms.com/docs/1.25/config-LXC Installation(Ubuntu) #sudo add-apt-repository ppa:juju/s ...

  4. 任务37:生成 JWT Token

    实现给用户办法token 默认是可以访问valuesController的,返回的状态是200 http://localhost:5429/api/values 返回的状态码是200 把ValuesC ...

  5. UVaLive 3401 Colored Cubes (暴力)

    题意:给定n个立方体,让你重新涂尽量少的面,使得所有立方体都相同. 析:暴力求出每一种姿态,然后枚举每一种立方体的姿态,求出最少值. 代码如下: #pragma comment(linker, &qu ...

  6. Oracle Escape

    select * from tablewhere col like '%\_'escape'\'

  7. E20180410-hm

    preface  n. 序言,引语; 开端,前奏; [宗] (弥撒的) 序诵,序祷;        vi. 作序; 作为…的序言,作为…的开端; 给…作序; 开始,导致; continue vi. 持 ...

  8. 在MacOs上安装sqlsrv Mojave - 找不到'php.h'文件

    Mojave没有安装标头. 要安装标头: open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_1 ...

  9. The Django Book学习笔记 04 模板

    如果使用这种方法制作文章肯定不是一个好方法,尽管它便于你理解是怎么工作的. def current_datetime(request): now = datetime.datetime.now() h ...

  10. BZOJ1833(数位dp)

    这个数位dp倒是没什么限制条件,只是需要在过程中把每个数字出现次数记录一下即可.记忆化返回时数学算出.框架还是套板子. #include <cstdio> #include <cma ...