博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java例程练习(批量修改文件后缀名)
阅读量:5991 次
发布时间:2019-06-20

本文共 2925 字,大约阅读时间需要 9 分钟。

/** * 文件后缀名修改器 * 说明:UI部分 * @author Yours风之恋 *  * 创建时间:2012-8-8 * */public class UserInterface {	public static void mainMenuDisplay() {		System.out.println("-------------------批量修改文件后缀名----------------------");		System.out.println("  Copyright 2012              ");		System.out.println("  @author Yours风之恋                     ");		System.out.println("-----------------------------------------------------------\n");	}		public static void helpMenuDisplay() {		System.out.println("-------------------系统帮助-------------------");		System.out.println("本系统需要两个参数:");		System.out.println("1,需要修改的文件所在文件夹目录");		System.out.println("2,自定义的后缀名");	}		public static void waitUserInput() {		System.out.println();		System.out.println("系统正在等待您的输入:");	}}
import java.io.File;import java.util.Scanner;public class FEA {	public static void main(String[] args) {		init();		start();	}		public static void start() {		System.out.println("请输入文件所在文件夹目录,按回车键结束。");		String dir = getInput();		list(dir, 0);		System.out.println("请输入自定义的后缀名,按回车键结束。");		String extension = getInput();		long l1 = System.currentTimeMillis();		change(dir, extension);		long l2 = System.currentTimeMillis();		System.out.println("后缀名修改成功,用时:" + (l2-l1) + "毫秒");	}	public static void listFiles(File f, int level, int key) {		if (!f.isDirectory()) {			System.out.println("目录不正确,本次服务结束 !");			System.exit(0);		}				String preStr = "";		for (int i = 0; i < level; i++) {			preStr += "    ";		}		File[] childs = f.listFiles();		for (int i = 0; i < childs.length; i++) {			System.out.println(preStr + childs[i].getName());			if (childs[i].isDirectory() && key == 0) {				listFiles(childs[i], level + 1, key);			}		}	}	public static void changeExtension(File f, String extension) {		if (!f.isDirectory()) {			System.out.println("目录不正确,本次服务结束 !");			System.exit(0);		}		File[] childs = f.listFiles();		for (int i = 0; i < childs.length; i++) {			if (childs[i].isFile()) {				String parStr = childs[i].getParent();				String filStr = childs[i].getName();				StringBuilder sbStr = new StringBuilder(filStr);								for(int k = sbStr.length() -1; k >= 0 ; k--) {					char c = sbStr.charAt(k);					if(c != '.') {						sbStr.deleteCharAt(k);					} else {						break;					}				}				sbStr.append(extension);				File fx = new File(parStr, sbStr.toString());				childs[i].renameTo(fx);							}			if (childs[i].isDirectory()) {				changeExtension(childs[i], extension);			}		}	}	public static void change(String dir, String extension) {		File f = new File(dir);		changeExtension(f, extension);	}	public static void list(String dir, int key) {		File f = new File(dir);		listFiles(f, 0, key);	}	public static String getInput() {		Scanner sc = new Scanner(System.in);		return sc.next();	}	public static void init() {		UserInterface.mainMenuDisplay();		UserInterface.helpMenuDisplay();		UserInterface.waitUserInput();	}}
另有源码和可执行文件:

转载于:https://www.cnblogs.com/wjchang/archive/2012/08/12/3671582.html

你可能感兴趣的文章
RedMonk 语言排行:Kotlin 上升 8 位,TS 快进前 10
查看>>
React UI 库: React Suite 3.8.3 版本发布
查看>>
Linux 学习笔记-第一阶段-基础入门之Linux发展史02
查看>>
Python爬虫:Scrapy框架的安装和基本使用
查看>>
Taro 1.2.14 发布,BAT 小程序、H5 与 RN 端统一框架
查看>>
重磅:JDK11正式发布!史上最全特性完整解读!
查看>>
机器学习实战之树回归
查看>>
这些拍案惊奇的智障桥段,分明是在蔑视我作为程序员的debug
查看>>
Keepalived & LVS 搭建高可用的 Web 服务
查看>>
JS中判断null、undefined与NaN的方法
查看>>
PSR规范0-4整理
查看>>
【原创】如何写一个框架:步骤(上)
查看>>
linux后台执行命令:&与nohup的用法
查看>>
bwdistsc 快速距离场计算函数解析
查看>>
算法面试题(二)
查看>>
Neditor 2.1.16 发布,修复缩放图片问题
查看>>
nginx 1.13.0的配置文件设置
查看>>
CSS-左下角的边框半径 | border-bottom-left-radius
查看>>
阿里云加入开放容器计划( OCI),详解开源项目PouchContainer
查看>>
用svn管理软件版本信息
查看>>