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這樣的錯誤文件(而且這樣的錯誤文件由來并非網站出現什麽嚴重不可挽救的錯誤,大部分是一些未定義變量這樣的不起眼的小錯 ...
随机推荐
- 搜索好题UVA1601
题目 分析:如果以当前3个小写字母的位置为状态,则问题转化为图上的最短路问题.但是如果每次都判断小写字母的下一步是否合法,那就是说每次移动都需要判断5^3,肯定会超时.可以把所有可以移动的格子找出来建 ...
- 【前端】CentOS 7 系列教程之六: 安装 mysql 5.7
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_6.html 进入/usr/local/src目录 cd /usr/local/src 下载mysql的 ...
- Table View Programming Guide for iOS---(三)----Overview of the Table View API
Overview of the Table View API 表格视图API概述 The table view programming interface includes several UIKit ...
- 025--python初识类和对象
一.面向对象的定义 说到面向对象,我们先来看一下面向过程的定义:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么 ...
- ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句
5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...
- HDOJ1864(水的可怜)
注意这句话:精确到小数点后两位如果是小数点的话 HDOJ1864 #include<stdio.h> #include<iostream> #include<algori ...
- hdoj1596【spfa,松弛】
积压很久的一道...一看直接spfa水过..但是看那个safest怎么求得?松弛的时候取大. #include <bits/stdc++.h> using namespace std; t ...
- android的logcat的message有字符长度的限制,超过将直接截断
http://blog.csdn.net/qidizi/article/details/47291803 今天想在logcat中输出足够多的调试信息时,发现从logcat中返回的信息中明显少了后面一节 ...
- bzoj 2588: Spoj 10628. Count on a tree【主席树+倍增】
算是板子,把值离散化,每个点到跟上做主席树,然后查询的时候主席树上用u+v-lca-fa[lca]的值二分 #include<iostream> #include<cstdio> ...
- bzoj 2761: [JLOI2011]不重复数字【hash】
map会T,双hash会冲突--于是非酋写了个三hash #include<iostream> #include<cstdio> #include<cstring> ...