实现文件重命名
2017-04-10 12:32
120 查看
面对各式各样的格式,一个一个修改表示心力憔悴,便写了一个程序来实现作业文件的重命名。
首先得到目录下的所有文件名:
然后就是根据自己的需求改不规范的名称了:
好了,完整代码:
结果就是这样的:
首先得到目录下的所有文件名:
/*得到目录下的文件名*/ public static String [] getFileName(String path) { File file = new File(path); String [] fileName = file.list(); return fileName; } /* java.io.File.File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。如果给定的字符串是空字符串,则结果是空的抽象路径名。 参数:pathname A pathname string 抛出:NullPointerException - If the pathname argument is null String[] java.io.File.list() 它返回一个字符串数组,包含路径目录中表示的文件和目录。如果路径名不表示目录,则它会返回null,否则就会返回一个字符串数组,包好路劲目录中的每个文件或目录。表示目录本身和目录的父目录的名称不包括在结果中。每个字符串都是一个文件名,而不是完整的路径。 */
然后就是根据自己的需求改不规范的名称了:
String [] fileName = getFileName(path); //得到文件名数组 for(String name : fileName) //遍历文件名 { String [] names = name.split("\\."); //将文件名与后缀分离 File oldfile = new File(path + "\\" + name); File newfile ; // System.out.println("文件名:"+names[0]); // System.out.println("后缀:"+names[1]); String newName; if(names[0].indexOf(' ') != -1)//检测空格并替换 { newName = names[0].replace(' ', '_'); System.out.println(" "); System.out.println(name); } else if(names[0].indexOf('-') != -1)//检测断线并替换 { newName = names[0].replace('-', '_'); System.out.println(" "); System.out.println(name); } else newName = names[0]; int tag = newName.lastIndexOf('_');//取最后一个“_” String newname = newName.substring(0, ++tag)+"计算机1401班."+names[1];//设置新名称 System.out.println(newname); newfile = new File(path + "\\" + newname); oldfile.renameTo(newfile);//重命名 } /* boolean java.io.File.renameTo(File dest) Renames the file denoted by this abstract pathname. 重命名由此抽象路径名表示的文件。 */
好了,完整代码:
package com.rename; import java.io.*; public class Rename { public static void main(String[] args) { String path = "G:\\123"; String [] fileName = getFileName(path); for(String name : fileName)//遍历文件名 { String [] names = name.split("\\."); //将文件名与后缀分离 File oldfile = new File(path + "\\" + name); File newfile ; //System.out.println("文件名:"+names[0]); //System.out.println("后缀:"+names[1]); String newName; if(names[0].indexOf(' ') != -1)//检测空格并替换 { newName = names[0].replace(' ', '_'); System.out.println(" "); System.out.println(name); } else if(names[0].indexOf('-') != -1)//检测断线并替换 { newName = names[0].replace('-', '_'); System.out.println(" "); System.out.println(name); } else newName = names[0]; int tag = newN 4000 ame.lastIndexOf('_');//取最后一个“_” String newname = newName.substring(0, ++tag)+"计算机1401班."+names[1];//设置新名称 System.out.println(newname); newfile = new File(path + "\\" + newname); if(oldfile.renameTo(newfile) == true) //重命名 { System.out.println("OK"); } else System.out.println("Error"); } } /*得到目录下的文件名*/ public static String [] getFileName(String path) { File file = new File(path); String [] fileName = file.list(); return fileName; } }
结果就是这样的:
相关文章推荐
- FCKeditor实现上传分月目录和文件重命名(C#)
- c#实现按日期命名上传文件代码
- C#实现按日期命名上传文件代码
- extjs中的下载并对文件重命名功能的实现
- 从java重命名文件失败来看mv的内部实现过程
- struts如何实现上传文件的重命名????
- 使用命名空间、头文件和实现文件
- Ubuntu下C语言实现以子进程号命名的文件及文件夹的新建、删除等操作。
- ASP 下载时重命名已上传文件的新下载文件名的实现代码
- c++命名空间三种实现文件的区别
- Javascript中实现JS文件的导入+命名前缀
- 以某种格式重命名目录下所有文件(ruby实现)
- java实现FTP远程文件移动(重命名、复制、拷贝)
- 用copy命令实现文件合并 ※ 批量重命名文件 ※ 修改文件日期(转帖)
- SPORE,一个很好的实现JS命名空间的管理,模块的定义,与自动加载依赖模块的脚本文件
- FCKeditor实现上传分月目录和文件重命名(C#)
- C#实现修改目录文件下所有子文件的名称---按规律重命名
- 利用VC++实现对文件的复制、删除、重命名
- \t\t批处理实现畸形文件、文件夹创建、访问、重命名、删除
- C语言实现文件命名按顺序递增