java 批量重命名文件

时间:2022-08-20 15:31:13

1、根据文件夹路径读取该文件夹下面所有的文件:

 
		
        /**
	 * 读取某个文件夹下的所有文件名
	 */
	public static List<File> readfile(String filepath)
			throws FileNotFoundException, IOException {
		try {

			File file = new File(filepath);
			if (!file.isDirectory()) {
				System.out.println("文件");
				System.out.println("path=" + file.getPath());
				System.out.println("absolutepath=" + file.getAbsolutePath());
				System.out.println("name=" + file.getName());
				files.add(file);
			} else if (file.isDirectory()) {
				System.out.println("文件夹");
				String[] filelist = file.list();
				for (int i = 0; i < filelist.length; i++) {
					File readfile = new File(filepath + "\\" + filelist[i]);
					if (!readfile.isDirectory()) {
						files.add(readfile);
						System.out.println("path=" + readfile.getPath());
						System.out.println("absolutepath="
								+ readfile.getAbsolutePath());
						System.out.println("name=" + readfile.getName());

					} else if (readfile.isDirectory()) {
						readfile(filepath + "\\" + filelist[i]);
					}
					
				}
				
			}

		} catch (FileNotFoundException e) {
			System.out.println("readfile()   Exception:" + e.getMessage());
		}
		return files;
	}

2、根据一定规则编译新文件路径(和原文件只是文件名不一致)

 /**
	  * 根据一定规则重命名文件
	  * @param nowFiles
	  * @param oldString 原名字
	  * @param newString 新名字
	  * @return
	  */
	 public static List<File> reNamefiles(List<File> nowFiles,String oldString ,String newString){
		 List<File> endfiles = new ArrayList<File>();
		 
		 for(File file:nowFiles){
			 String path = file.getAbsolutePath();
			 path = path.replace(oldString, newString);
			
			 
		 }
		 return endfiles;
	 }

3、文件重命名:

         
        /**
	  * 重命名
	  * @param nowFile
	  * @param oldFile
	  * @return
	  */
	 public static File reNamefile(File nowFile,File oldFile){
		boolean  bool= oldFile.renameTo(nowFile);
		 if(bool){
			 return nowFile; 
		 }else{
			 return oldFile;
		 }
	 }

所有的代码:

public class FileReNameUtil {
	 public FileReNameUtil() {
     }
	 /**
	  * 重命名
	  * @param nowFile
	  * @param oldFile
	  * @return
	  */
	 public static File reNamefile(File nowFile,File oldFile){
		boolean  bool= oldFile.renameTo(nowFile);
		 if(bool){
			 return nowFile; 
		 }else{
			 return oldFile;
		 }
	 }
	 /**
	  * 根据一定规则重命名文件
	  * @param nowFiles
	  * @param oldString
	  * @param newString
	  * @return
	  */
	 public static List<File> reNamefiles(List<File> nowFiles,String oldString ,String newString){
		 List<File> endfiles = new ArrayList<File>();
		 
		 for(File file:nowFiles){
			 String path = file.getAbsolutePath();
			 path = path.replace(oldString, newString);
			 File fileTemp=reNamefile(file,new File(path));
			 endfiles.add(fileTemp);
			 
		 }
		 return endfiles;
	 }
	 
	
	 public static void main(String[] args) {

			List<File> readfiles= new ArrayList<File>();
			List<File> writefiles= new ArrayList<File>();
			try {
				readfiles = ReadFile.readfile("**********");
				writefiles=reNamefiles(readfiles,"04","03");//将原文件名里的04替换成03
			} catch (Exception e) {
				e.printStackTrace();
				System.out.println(e.toString());
			}
			for(int i = 0 ; i<writefiles.size(); i++){
				System.out.println(((File)writefiles.get(i)).getPath());
			}
		
	}
	 
}