java+改变文件后缀_java例程练习(批量修改文件后缀名)

/**

* 文件后缀名修改器

* 说明: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值