java怎么实现文件重命名

  介绍

这篇文章主要介绍了java怎么实现文件重命名,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>背景

我们经常在网上下载一些视频教程,然而这些视频命名规则各不相同,即使对于相同类型的文件名来说,当文件数量很大且文件名全部是中文时,文件排序是非规则的,因此本篇博客主要讲解一种改变文件夹名称使得文件按照规律进行排序。

<强>思路

根据文件名对文件进行排序,然后重命名文件即可。

<强>代码

规则:如将文件名中带有“第八讲“替换成“8”:

构建排序规则

/* * *   ,* @param  filePath 文件夹位置   ,* @param  startWorld 开始替换的字   ,* @param  endWorld 结束替换的字   */private 才能;void 重命名(String  filePath, String  startWorld,, String  endWorld), {   ,,,File  File =, new 文件(filePath);   ,,,if  (! file.exists (), | |, ! file.isDirectory ()), {   ,,,,,System.out.println(“文件不存在“);   ,,,,,返回;   ,,,}   ,,,String [], list =, file.list ();   ,,,//以,第xxx讲——文件全名,的键值对存储文件   ,,,HashMap<字符串,String>, paths =, new  HashMap<字符串,String> ();   ,,,for  (String  str :列表),{   ,,,,,int  start =, str.indexOf (startWorld), +, 1;   ,,,,,int 最终获得=,str.indexOf (endWorld);   ,,,,,if  (start  !=, 0,,,,最终获得!=,1),{   ,,,,,,,paths.put (str.substring(开始,结束),str);   ,,,,,},{else    ,,,,,,,System.out.println(“文件,,,+,str  +,“,不满足替换条件“);   ,,,,,}   ,,,}   ,,,//对文件名进行排序   ,,,orderPath (filePath, endWorld,,路径);   以前,,}

排序

private  void  orderPath (String  filePath, String  endWorld,   ,,,,,HashMap<字符串,String>,路径),{   ,,,if  (paths.isEmpty ()), {   ,,,,,返回;   ,,,}   ,,,TreeMap<整数,,String>, map =, new  TreeMap<整数,,String> ();   ,,,for  (String  str : paths.keySet ()), {   ,,,,,map.put(方法(str), paths.get (str));   ,,,}   ,,,//重命名该文件   ,,,ReNameFile (filePath, endWorld,,地图);   以前,,}

重命名

private  void  ReNameFile (String  filePath, String  endWorld,   ,,,,,TreeMap<整数,,String>,地图),{   ,,,for  (int 小姐::,map.keySet ()), {   ,,,,,String  path =, map.get(我);   ,,,,,File  f =, new 文件(时间+ filePath  File.separator  +,路径);   ,,,,,File  dest =, new 文件(时间+ filePath  File.separator  +,我   ,,,,,,,,,+,path.substring (path.indexOf (endWorld), +, - 1));   ,,,,,if  (f.exists (),,,, ! dest.exists ()), {   ,,,,,,,f.renameTo(桌子);   ,,,,,}   ,,,,,f =,空;   ,,,,,dest =,空;   ,,,}   以前,,}

将中文描述的数字转换为数字,如将一百二十转换为120

private  int 方法(String  str), {   ,,,if  (str.length (),==, 1), {   ,,,,,if  (str.equals(“十“)),{   ,,,,,,,return  10;   ,,,,,}   ,,,,,return  getInt (str.charAt (0));   ,,,},{else    ,,,,,StringBuffer  sb =, new  StringBuffer ();   ,,,,,for  (int 小姐:=,0;,小姐:& lt;, str.length();,我+ +),{   ,,,,,,,char  c =, str.charAt(我);   ,,,,,,,if  (c  !=, & # 39;百& # 39;,,,,c  !=, & # 39;十& # 39;),{   ,,,,,,,,,sb.append (getInt (c));   ,,,,,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

java怎么实现文件重命名