/**
* 文件后缀名修改器
* 说明: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();
}
}
另有源码和可执行文件:
http://download.csdn.net/detail/haifengzhilian/4494395
分享到:
相关推荐
本资源是关于明华读卡器的Java例程,真实可用。自己做过测试。
简单JAVA例程(绝对新手实例)认识JAVA。简单的JAVA程序!
一个非常简单的Java程序 计算长方体的表面积和体积
java初学者必看,关于监控器,jdbc,绘图方面操作,外加自己写的一个选修课作业
JAVA的基础例程,一些关于java的简单程序代码与文档,有助于JAVA基础薄弱的人快速提高,而且也有助于一般的开卷考试课哦,其中一定有你需要的
几个java描述的适用于初学者的例程源代码,可随意修改,寓学与实际操作。
基于Java的扫雷、俄罗斯方块、聊天工具、五子棋,游戏例程。
Java 教材中的例程.zip
java串口通信,压缩包包含rxtxcomm以及javacomm20例程,以及一个test例程,已测试。
java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...
自己初学的小例程,可能比较简单,但是学习起来还不错
java例程,初学者试用,完整代码,更多资源请联系
Java例程,创建一个Ruler,使用Eclipse环境
易语言简单的文件搜索例程源码,简单的文件搜索例程,搜寻,取后缀名
JAVAHTTP例程JAVAHTTP例程JAVAHTTP例程
JAVA 网络编程服务器端例程,一个测试socket通信的比较好的例程
该文件包中含有全部的基础篇代码,简单易懂,内容全面,非常适合Java的初学者
DICOM 开发例程 java DICOM 开发例程 java DICOM 开发例程 java DICOM 开发例程 java DICOM 开发例程 java
根据usbcan例程修改解析s19文件,且外发bin的例程
java人脸识别例程,含有.class文件,可用反编译工具反编译