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

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

源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm

今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的。

这样可以兼容windows和linux。

package com.zuidaima.fileutil;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
**@author www.zuidaima.com
**/
public class BatchRename {
	public static void main(String[] args) {
		String dir = "c:/jsp/";
		File file = new File(dir);
		String srcSuffix = "jsp";
		String dstSuffix = "ftl";
		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);
			File dstFile = new File(srcFile.getParent() + "/" + prefix + "."
					+ dstSuffix);
			if (dstFile.exists()) {// 此处代码注意修改为自己想要的逻辑
				srcFile.delete();
				continue;
			}
			srcFile.renameTo(dstFile);
		}
	}

	/**
	 * 获取指定路径下的所有符合条件的路径
	 */
	private static List<String> listPath(File path, String acceptSuffix) {
		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, acceptSuffix);
				list.addAll(_list);
			} else {
				String name = file.getName();
				int idx = name.lastIndexOf(".");
				String suffix = name.substring(idx + 1);
				if (suffix.equals(acceptSuffix)) {
					list.add(file.getAbsolutePath());
				}
			}
		}
		return list;
	}
}
时间: 2024-10-11 07:49:36

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

将某一个路径下的所有java文件复制到另外一个文件夹下,并重命名为jad文件

需求很简单,程序也不难.看到题目之后,自己第一次没有使用eclipse,而是使用了编辑器,手编了一个程序,简陋,但实现了功能. 代码如下: import java.io.*; class Copy{ public void copy(String srcPath, String targetPath) throws Exception{ File srcFolder = new File(srcPath); File tarFolder = new File(targetPath); if(!t

linux下定期删除指定文件夹下2天前的文件

vi编脚本delete-log.sh内容如下:find /home/ctbackup/ -mtime +2 -name orabackup- -exec rm -rf {} \;find /home/ctbackup/ -mtime +2 -name OilDaQingAllinoneM- -exec rm -rf {} \; 设定执行脚本时间:每天3点执行脚本命令crontab -e0 3 * /home/delete-log.sh 原文地址:https://blog.51cto.com/su

把一个文件夹下的多个excel文件合并到同一个excel的一个sheet里

#!/usr/bin/python # -*- coding: UTF-8 -*- import pandas as pd import os if __name__ == '__main__': Folder_Path = 'c:\data1' os.chdir(Folder_Path) file_list = os.listdir() dfs = [] for item in file_list: dfs.append(pd.read_excel(Folder_Path + '\\' + i

如何批量修改文件夹下的文件名

在工作或者平时生活中,我们有时候会遇到大批量的文件名需要重命名,十几二十个文件进行一个一个命名还是可以的,但如果涉及到成百上千个文件需要重命名,那一个一个改的方法显然太耗费时间和精力了,如果任务比较紧急的情况下,有时候还会误事.那么有什么办法可以简单一点重命名呢?笔者通过搜索,终于找到了比较合适的方法进行来解决这个问题,下面是操作的步骤. 第一步:获取这些不规则文件的文件名: 打开需要更改文件名的文件夹: 在这个文件夹下,新建一个txt文件,并在其中输入DIR *.*  /B >LIST.csv

Python扫描指定文件夹下(包含子文件夹)的文件

扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描指定文件夹下的特定后缀的文件(比方jar包),包含子文件夹,调用scan_files("/export/home/test/", postfix=".jar") 假设要扫描指定文件夹下的特定前缀的文件(比方test_xxx.py).包含子文件夹,调用scan_files

linux查找文件夹下的全部文件里是否含有某个字符串

查找文件夹下的全部文件里是否含有某个字符串 find .|xargs grep -ri "IBM" 查找文件夹下的全部文件里是否含有某个字符串,而且仅仅打印出文件名称 find .|xargs grep -ri "IBM" -l 1.正則表達式 (1)正則表達式一般用来描写叙述文本模式的特殊使用方法,由普通字符(比如字符a-z)以及特殊字符(称为元字符.如/.*.?等)组成. (2)基本元字符集及其含义 ^ :仅仅匹配行首. 如^a 匹配以a开头的行abc,a2e,

07.把文件夹下(包括子目录)的所有bmp转成jpg

Xnview的浏览器: 工具 - 批量转换,配置之后,输出可以导出bat脚本,脚本里用的是nconvert.exe 这里可以批量转换文件夹包括子文件夹的,但是不能只转换指定格式的(bmp格式); 所以自己动手写个bat @rem 作用:把文件夹下的所有的bmp文件转成jpg格式;nconvert的命令语法是从XnView导出的; @rem 用法: @rem 其他: @rem 2015/12/20 周日 14:34:30.37 @echo off&SetLocal EnableDelayEdexp

python遍历文件夹下的文件

在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回多个路径中,所有path共有的最长的路径. os.path.dirname(path) #返回文件路径 os.path.exists(path)  #路径存在则返回True,路径损坏返回False os.path

读取文件夹下所有子文件夹中的excel文件,并根据分类合并

解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独保存汇总文件,或者只保存成一个汇总文件. 场景描述:抓取了各个APP的使用数据,分散地保存在各个文件夹中.文件格式如下: 第一级分类:文件夹名 第二级分类:文件夹下xlsx文件名 第三级分类:每个xlsx文件中每行(具体的每条数据),但其中并没有该APP属于的二级分类和一级分类,需要为每条数据添加二