今天学习了feiy(email:eshangrao@gmail.com http://blog.eshangrao.com/)做的批量修改文件目录下的文件扩展名 的代码. 自己根据理解的程度,修改了一些, 在此做个记录,算是学习小结,呵呵:)
import
java.io.
*
;
import
java.util.
*
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
public
class
RenameExts
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public RenameExts() ...{
// TODO Auto-generated constructor stub
}
private String orgExt;
private String newExt;
private boolean debug=false;
private int allFileNum;
private int sucFileNum;
private int failFileNum;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public RenameExts(String dir,String orgExt,String newExt,boolean debug)...{
this.orgExt=orgExt;
this.newExt=newExt;
this.debug=debug;
changeName(dir);
System.out.println("--------------------------------------");
System.out.println("转换扩展名:"+orgExt+"到:"+newExt+"完毕!");
System.out.print(" 需要修改的文件:"+allFileNum);
System.out.println(",成功:"+sucFileNum+",失败:"+failFileNum);
System.out.println("--------------------------------------");
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private void changeName(String cPath)...{
File class_path=new File(cPath);
//如果指定路径不存在,抛出信息,并退出
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(!class_path.exists())...{
System.out.println("The path doesn't exist");
System.exit(-1);
}
//如果是文件,修改后缀
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (class_path.isFile())...{
int lastIndex=class_path.getName().lastIndexOf(".");
String spname=class_path.getName().substring(0,lastIndex);
String spext=class_path.getName().substring(lastIndex+1);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(spext.equals(orgExt))...{
allFileNum++;
String newFileName=class_path.getParent()+File.separator+spname+"."+newExt;
boolean result=class_path.renameTo(new File(newFileName));
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(result)...{
sucFileNum++;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
failFileNum++;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(debug)...{System.out.println("rename:"+cPath+" to: "+newFileName+","+result);}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
System.out.println(cPath+ "has different extend !");
}
}
//如果是文件夹,递归调用,查找下面的文件
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
else...{
String[] list=class_path.list();
if(debug)
System.out.println("change to path:"+cPath);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
for(int i=0;i<list.length;i++)...{
String list_item=list[i];
String fileName=class_path.getPath()+File.separator+list_item;
changeName(fileName);
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public static void main(String[] args) ...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try...{
System.out.println("Input the path like:");
System.out.println("需要更改扩展名的文件/文件夹路径 原始扩展名 新的扩展名 [是否调试:1/0]");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
String[] l=s.split(" ");
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(l.length<3)...{
System.out.println("Usage:");
System.out.println("需要更改扩展名的文件/文件夹路径 原始扩展名 新的扩展名 [是否调试:1/0]");
System.exit(-1);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(l.length>=4)...{
new RenameExts(l[0],l[1],l[2],l[3].equals("1"));
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
new RenameExts(l[0],l[1],l[2],false);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}catch(Exception e)...{
e.printStackTrace();
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}