/*** 文件后缀名修改器* 说明: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

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

java例程练习(批量修改文件后缀名)相关推荐

  1. linux sed给空文件首行插入_linux下批量修改文件后缀名以及合并多行

    写在前面 感谢乔兄送测的公司,让我终于所有营业 part1讲下怎么解决小问题 part2分享谈判过程 part3mark张兄的奶茶 PART1 linux下批量修改文件后缀名以及合并多行 近期师兄在做 ...

  2. 玩点不一样的,如何使用MATLAB实现批量修改文件后缀名,文件名,批量复制文件

    1.  自动批量修改文件后缀名,有时非常有用. 对于文件名没有要求,不用是序列文件名.比如需要将abaqus的inp文件修改成txt文件,便于使用 textscan和 textread等函数操作. c ...

  3. php 批量改文件名后缀名_PHP 批量修改文件后缀名

    跳至/** * 批量修改文件后缀名 * @param $path 文件夹路径 * @param $sext 原文件后缀名 ($sext=all说明整个目录的所有文件) * @param $dext 目 ...

  4. C++批量修改文件后缀名(提供多种方法)

    C++批量修改文件后缀名的Qt程序 方法一: #include "stdafx.h"#include <stdio.h> #include <fstream> ...

  5. 计算机如何更改后缀文件名,如何批量修改文件后缀名(任何文件的扩展名)?

    无需软件批量修改文件后缀名?怎么通过命令行批量修改文件后缀名?有时候由于文件后缀名格式不同,有的时候我们需要对文件扩展名进行修改,或者文件扩展名丢失,需要添加.如果数量少的文件那还简单直接修改就好了. ...

  6. 如何批量修改文件后缀名?(批量修改文件的扩展名)

    无需软件批量修改文件后缀名?怎么通过命令行批量修改文件后缀名?有时候由于文件后缀名格式不同,有的时候我们需要对文件扩展名进行修改,或者文件扩展名丢失,需要添加.如果数量少的文件那还简单直接修改就好了. ...

  7. windows10批量修改文件后缀名

    windows10批量修改文件后缀名 步骤 1. 在windows开始栏中打开命令提示符, 也可以用快捷键:win+R ,输入cmd,回车 2. cd到你需要修改后缀名的文件夹目录下,输入命令:ren ...

  8. 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍

    如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...

  9. 批量修改文件后缀名(脚本)

                                     一键批量修改文件后缀名(脚本) 输入法是英语模式输入!!! 输入法是英语模式输入!!! 输入法是英语模式输入!!! 1.在你需要更改的 ...

最新文章

  1. python使用matplotlib可视化线图(line plot)、将可视化图像的图例(legend)放置在图像外部、右侧区域
  2. LeetCode: Maximum Product Subarray
  3. 开放搜索查询分析服务架构解读
  4. webpackjsonp 还原_具有催化CO2还原性能的非贵金属配合物的配体设计
  5. 提取数据_EasyStat如何提取数据+个性化出图
  6. 看《烈火雄心》 --当大家从火里出来,我们进去
  7. 科普:为什么 String hashCode 方法选择数字31作为乘子
  8. NetCore MiddleWare 注意事项
  9. windows.location属性(常用知识点)
  10. 阶段3 2.Spring_08.面向切面编程 AOP_4 spring基于XML的AOP-配置步骤
  11. jconsole监控tomcat
  12. 线性混合效应模型学习
  13. 【C代码】结构体数组初始化的相关总结
  14. 扫描电子显微镜SEM在失效分析中的应用
  15. qlv转php,如何将qlv文件转换成mp,qlv文件怎么免费转换为mp4格式
  16. 视频播放移动端app网页前端模板源码下载
  17. iec61508最新2020_IEC61508标准解读
  18. Verilog HDL 程序设计(三)
  19. bcrypt.dll怎么修复?bcrypt.dll修复工具下载
  20. PrintDocument DrawString C# 换行问题

热门文章

  1. vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式
  2. 发布json数据_技术分享 | MySQL 8.0.17 GA 发布!
  3. 同一批电脑cpu序列号_新电脑到手后,你会验货吗?怎么检查新电脑?
  4. 如何听节拍器_我是如何开垮一家琴行的!
  5. 武安高中计算机学院那个好,河北邯郸最好的5所高中,前两所学霸如云,看看有你的母校没?...
  6. java httpinvoker漏洞_Java反序列化漏洞学习
  7. nginx+tomcat实现Windows系统下的负载均衡搭建教程
  8. php5.3中ZendGuardLoader与wincache冲突问题的解决方法
  9. Linux下查看nginx apache mysql php的编译参数
  10. 洛谷P2068 统计和题解