zoukankan      html  css  js  c++  java
  • java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

                                                  java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码


    作者:Vashon

    package com.ywx.batchrename;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
     * @author yangwenxue(vashon)
     *
     */
    public class BatchRename {
    	public static void main(String args[]){
    		String dir="f:"+File.separator+"java";
    		File file=new File(dir);
    		String srcSuffix="class";
    		String dstSuffix="java";
    		List<String> paths=listPath(file,srcSuffix);
    		for(String path : paths){
    			File srcFile=new File(path);
    			String name=srcFile.getName();
    			int idx=name.lastIndexOf(".");
    			String prefix=name.substring(0, idx);
    			System.out.println(srcFile.getParent());
    			
    			File dstFile=new File(srcFile.getParent()+"/"+prefix+"."+dstSuffix);
    			if(dstFile.exists()){
    				srcFile.delete();
    				continue;
    			}
    			srcFile.renameTo(dstFile);
    		}
    	}
    	/**
    	 * 获取指定路径下的所有符合条件的路径
    	 * @param file 路径
    	 * @param srcSuffix 后缀名
    	 * @return
    	 */
    	private static List<String> listPath(File path, String srcSuffix) {
    		List<String> list=new ArrayList<String>();
    		File[] files=path.listFiles();
    		Arrays.sort(files);
    		for(File file : files){
    			if(file.isDirectory()){//如果是目录
    				//关键是理解以下两步操作(递归判断下级目录)
    				List<String> _list= listPath(file, srcSuffix);//递归调用
    				list.addAll(_list);//将集合添加到集合中
    			}else{//不是目录
    				String name=file.getName();
    				int idx=name.lastIndexOf(".");
    				String suffix=name.substring(idx+1);
    				if(suffix.equals(srcSuffix)){
    					list.add(file.getAbsolutePath());//把文件的决定路径添加到集合中
    				}
    			}
    		}
    		return list;
    	}
    }
    
    注:此代码案例关键部分是递归部分。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    Stay Hungry, Stay Foolish, Walking in Life
  • 相关阅读:
    js控制treeview默认展开
    java 在方法中新建线程,传参和加锁详解
    springmvc加载xml文件读取本地properties配置文件
    Android系统目录结构详解
    支付宝沙箱测试-ALI40247
    转化.vdi到.vmdk
    查看网页自动保存的密码
    天猫魔盘在 deepin-linux中的使用
    百度云-上传服务器出错误
    安装出现了error launching installer
  • 原文地址:https://www.cnblogs.com/ywx-vashon/p/4895760.html
Copyright © 2011-2022 走看看