操作案例:批量修改文件名称
编写程序,程序运行时输入目录名称,并把该目录名所有文件包括子目录里面的文件后缀修改为.txt。
对于这类的操作必须设置一些假设的约定,能够重命名的文件都是有后缀的,如果没有后缀的路径则为其追加路径,如果有后缀的路径则必须以最后一个“.”进行截取。
实现类:
public static void renameDir(File file){
if(file.isDirectory()){ //是一个目录
File[] results = file.listFiles(); //列出子目录的内容
if(results != null){
for (int x = 0;x<results.length;x++){
renameDir(results[x]); //递归调用
}
}
}else{
if(file.isFile()){ //如果是文件就必须要重命名
String fileName = null;
if(file.getName().contains(".")){ //判断文件名是否有“.”
//把file的文件名字从索引0开始找到最后一个“.”,在将他们截取,保存的是除去后缀的文件名
fileName = file.getName().substring(0,file.getName().lastIndexOf("."))+".txt";
}else{
fileName = file.getName()+".txt"; //没有"."直接保存这个数据
}
File newFile = new File(file.getParentFile(),fileName); //从父路径名字符串和子路径名字符串创建新的File实例
file.renameTo(newFile); //重命名
}
}
}
主方法:
File file = new File("F:"+File.separator+"Test"); //File.separator表示分隔符
renameDir(file);
在面试过程之中经常出现,给你一个路径让你进行名称或者文件的批量修改操作就可以采用这个结构。