- 注册时间
- 2004-11-1
- 最后登录
- 2018-4-24
版主
- 积分
- 548
|
- import std.file;
- import std.path;
- import std.string;
- import std.stdio;
- long 获取创建时间(char[] 文件路径)
- {
- long 创建时间;
- long 访问时间;
- long 修改时间;
- getTimes(文件路径, 创建时间, 访问时间, 修改时间);
- return 创建时间;
- }
- struct 时间旧新文件名
- {
- long 创建时间;
- char* 旧文件名;
- char* 新文件名;
- }
- void main(char[][] args)
- {
- if(args.length != 2)
- {
- printf("sample:\n>>rfl \"ff7\"\n>>ff7-map.mid => 06-map.mid");
- return;
- }
-
- char[][] 临时文件列表 = listdir(getcwd());
- 时间旧新文件名[] 文件列表;
- 时间旧新文件名[] 新文件列表;
- foreach(char[] 文件名; 临时文件列表)
- {
- 时间旧新文件名 t;
- t.创建时间 = 获取创建时间(文件名);
- t.旧文件名 = toStringz(文件名);
- t.新文件名 = toStringz(文件名);
- 文件列表 ~= t;
- }
-
- long[] 临时时间列表;
- foreach(时间旧新文件名 t; 文件列表.sort)
- {
- 临时时间列表 ~= [t.创建时间];
- }
- 临时时间列表.sort;
-
- foreach(long 时间; 临时时间列表)
- {
- foreach(时间旧新文件名 t; 文件列表)
- {
- if(时间 == t.创建时间 )
- {
- 新文件列表 ~= t;
- }
- }
- }
-
- for(uint i = 0; i < 新文件列表.length; i++)
- {
- uint fc = 新文件列表.length;
- char[] t;
- char[] c;
- if(fc>=0 && fc<=9)
- {
- c ~= toString(i+1);
- }
- if(fc>=10 && fc<=99)
- {
- if(i>=0 && i<9)
- {
- c = "0" ~ toString(i+1);
- }
- else
- {
- c ~= toString(i+1);
- }
- }
- if(fc>=100 && fc<=999)
- {
- if(i>=0 && i<9)
- {
- c = "00" ~ toString(i+1);
- }
- else if(i>=9 && i<=99)
- {
- c = "0" ~ toString(i+1);
- }
- else
- {
- c ~= toString(i+1);
- }
- }
- if(fc>=1000 && fc<=9999)
- {
- if(i>=0 && i<9)
- {
- c = "000" ~ toString(i+1);
- }
- else if(i>=9 && i<=99)
- {
- c = "00" ~ toString(i+1);
- }
- else if(i>=99 && i<=999)
- {
- c = "0" ~ toString(i+1);
- }
- else
- {
- c ~= toString(i+1);
- }
- }
- if(fc>9999)
- {
- return;
- }
- t = replace(toString(新文件列表[i].旧文件名), args[1], c);
- 新文件列表[i].新文件名 = toStringz(t);
- }
-
- foreach(时间旧新文件名 t; 新文件列表)
- {
- printf("%s\n>> %s\n####################\n", t.旧文件名, t.新文件名);
- }
-
- printf("Please press a key:\ny : rename all\nn : skip all\n");
- switch(getchar())
- {
- case 121:
- foreach(时间旧新文件名 t; 新文件列表)
- {
- printf("%s\n>>%s\n", t.旧文件名, t.新文件名);
- std.file.rename(toString(t.旧文件名),toString(t.新文件名));
- }
- printf(">>>> rename ok!\n");
- break;
- default:
- printf(">> exit program!");
- break;
- }
- }
复制代码 |
|