按照时间排序并重命名文件
2016-10-01 00:00
239 查看
摘要: 按照时间排序来重命名文件列表,使用Elixir编程语言来实现。
iPhone照片每次重置手机后都会按照IMG_xxxx.JPG从1开始命名照片名字,当你多次操作的时候,便会有重名的情况。所以需要批量按照时间重命名所有的照片。
最开始想到使用Linux Shell来完成这个任务,后来想试一下Elixir,完美解决。
pipe操作还算优雅
iPhone照片每次重置手机后都会按照IMG_xxxx.JPG从1开始命名照片名字,当你多次操作的时候,便会有重名的情况。所以需要批量按照时间重命名所有的照片。
最开始想到使用Linux Shell来完成这个任务,后来想试一下Elixir,完美解决。
IO.puts "Hello Cjl" # filter and sorted by date_time sorted_files = File.ls! |> Enum.filter( fn f -> f != ".DS_Store" && f != "hw.exs" end) |> Enum.sort( fn(f1, f2) -> md1 = File.lstat!(f1).mtime |> Tuple.to_list |> Enum.map(fn f -> Tuple.to_list(f) end ) |> Enum.flat_map(fn f -> f end) |> Enum.reduce("", fn (x, acc) -> acc <> (x |> Integer.to_string |> String.rjust(4, ?0) ) end ) md2 = File.lstat!(f2).mtime |> Tuple.to_list |> Enum.map(fn f -> Tuple.to_list(f) end ) |> Enum.flat_map(fn f -> f end) |> Enum.reduce("", fn (x, acc) -> acc <> (x |> Integer.to_string |> String.rjust(4, ?0) ) end ) md1 < md2 end) # |> Enum.each(fn (f1) -> # idx = Enum # md1 = File.lstat!(f1).mtime |> Tuple.to_list |> Enum.map(fn f -> Tuple.to_list(f) end ) |> Enum.flat_map(fn f -> f end) |> Enum.reduce("", fn (x, acc) -> acc <> (x |> Integer.to_string |> String.rjust(4, ?0) ) end ) # # IO.puts md1 <> " " <> f1 # File.rename(f1, "xx") # end) # 重命名文件,下面这段代码的出现是因为Enum.each没有索引idx。没有找到,望指点。 cnt = Enum.count sorted_files Enum.each(0..(cnt-1), fn x -> f = Enum.at(sorted_files, x) IO.puts Integer.to_string(x) <> " " <> f b = (x + 1) |> Integer.to_string |> String.rjust(4, ?0) name = "IMG_" <> b <> ".JPG" File.rename(f, name) end)
pipe操作还算优雅
相关文章推荐
- 批处理 按照文件的创建时间排序 获取第一文件
- java实现按照文件的修改时间排序文件夹下的文件
- 批处理 按照文件的创建时间排序 获取第一文件
- Perl 将一目录下的文件按照文件名中的时间字符串排序
- Java读取目录文件并且按照时间进行排序
- PHP文件目录操作问题 列出目录下的东西时 如何先列目录,再列文件 文件也按照名称或时间排序或者类型
- linux_常用命令_(ls, lsof,nslookup)_查看文件按照时间排序
- Perl 把一堆文件 按照 文件名字中的时间 进行排序
- php文件管理,可以点击按照时间,大小,名称排序
- C#.net获取指定文件夹下的所有jpg文件,并按文件创建时间排序
- ASP 使用FSO读取文件 可以按照文件名和修改日期排序
- ls实现列文件按时间排序
- .NET按照创建时间获取文件夹文件
- linux 中查找文件,并且将目标文件按时间顺序排序,
- asp fso读取文件夹,如何按照(1:按创建时间 2:按访问时间 3:按修改时间 4:按名称)排序(2008-09-18,11:19:18)
- struts文件上传并重命名
- ASP 使用FSO读取文件 可以按照文件名和修改日期排序
- asp fso读取文件夹,如何按照(1:按创建时间 2:按访问时间 3:按修改时间 4:按名称)排序(2008-09-18,11:19:18)
- JAVA 对文件时间排序
- 怎样得到程序的运行路径,以系统时间命名文件