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;
}
}
注:此代码案例关键部分是递归部分。
版权声明:本文为博主原创文章,未经博主允许不得转载。
java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码的更多相关文章
- 怎么统计指定文件夹下含有.xml格式的文件数目
如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...
- Python遍历一个文件夹下有几个Excel文件及每个Excel文件有几个Sheet
一. 解决问题: 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判 ...
- Java获取Linux上指定文件夹下所有第一级子文件夹
说明:需要只获得第一级文件夹目录 package com.sunsheen.jfids.studio.monitor.utils; import java.io.BufferedReader; imp ...
- 使用 OLEDB 及 SqlBulkCopy 将多个不在同一文件夹下的 ACCESS mdb 数据文件导入MSSQL
注:转载请标明文章原始出处及作者信息http://www.cnblogs.com/z-huifei/p/7380388.html 前言 OLE DB 是微软的战略性的通向不同的数据源的低级应用程序接口 ...
- Windows操作系统单文件夹下到底能存放多少文件及单文件的最大容量
本文是转自:http://hi.baidu.com/aqgjoypubihoqxr/item/c896921f8c2eaba5feded5f2 最近需要了解Windows中单个文件夹下 ...
- tomcat的bin文件夹下的.bat和.sh文件
tomcat的bin文件夹中存在一份.bat文件和相对应的.sh文件,一个是为了在window系统上执行的文件,另一个是linux下的批处理文件.例如:startup.bat和startup.sh. ...
- ubuntu18.04 复制或剪切某文件夹下的前x个文件到另一个文件夹下
该代码可以将file_path_src文件夹中的前cnt个文件,剪切或复制到file_path_tar文件夹下,前提是file_path_src中的文件名可以排序.如VOC数据集提取某个类的图片和xm ...
- Python 循环删除指定文件夹下所有的.longtian类型文件
# -*- coding: utf-8 -*- import os #遍历文件夹删除文件 def traversing_dir(rootDir): #遍历根目录 for root,dirs,files ...
- 屏蔽zencart logs文件夹下不断生成的日志文件
在根目錄下的logs文件夾中,經常生成一些錯誤文件類似myDEBUGxxxxx.log這樣的錯誤文件(而且這樣的錯誤文件由來并非網站出現什麽嚴重不可挽救的錯誤,大部分是一些未定義變量這樣的不起眼的小錯 ...
随机推荐
- 小米2在Eclipse 调试,要注意下列步骤。(转)
小米2在Eclipse 调试,要注意下列步骤.1.连接线,打开设置:USB线连接小米2,在设置-->开发者选项->USB 调是打开.如果这一步,就业在Eclipse中真机调试,下面的步骤不 ...
- HDU4188:RealPhobia (连分数的运用之一)
Bert is a programmer with a real fear of floating point arithmetic. Bert has quite successfully used ...
- Watir: 如果安装sougou浏览器,有可能导致Watir不能工作
如果安装了搜狗,Watir::Browser.new并不一定能打开新的IE浏览器.这种情况下,必须卸载搜狗浏览器,当然,attach,find方法还是可以用的
- MySQL暴错注入方法整理
1.通过floor暴错 /*数据库版本*/ http://www.waitalone.cn/sql.php?id=1+and(select 1 from(select count(*),concat( ...
- NYOJ8——一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述:现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数: ...
- Spherical Harmonics Lighting
[转自:http://www.cnblogs.com/daniagger/archive/2012/05/29/2524133.html] 1.背景知识 1.1 光照表示 之前我们都只考虑光源点和物体 ...
- 数据库连接 ADO,OLEDB,ODBC,DAO的区别 转载
http://blog.csdn.net/ithomer/article/details/6624684 ODBC(Open Database Connectivity,开放数据库互连) 1992年, ...
- (水题)洛谷 - P1583 - 魔法照片
https://www.luogu.org/problemnew/show/P1583 设计一个strcut cmp用来比较,就可以了. #include<bits/stdc++.h> u ...
- CF788B Weird journey
总共有n个节点,m条路径,要求其中m-2条路径走两遍,剩下2条路径仅走一遍,问不同的路径总数有多少,如果仅走一遍的两条边不同则将这两条路径视为不同. 可以把每条边都拆成两条重边,每条边的度数都是偶数了 ...
- 莫队初探(不带修/例题极少)By cellur925
因为今天考到莫队裸题了嘤嘤嘤...而我这样的蒟蒻肯定不会这样的高端算法啊QAQ.于是暴力水了40分qwq. 正如上文所说,我实在太菜了,于是学习莫队也只是学习了最简单的不带修普通莫队,如果我能苟到省选 ...