A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© student 中级黑马   /  2013-5-23 11:01  /  1838 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 student 于 2013-5-23 14:28 编辑

有时候,电脑中的文件名很长,如果几个文件手动修改还没问题,但是如果文件很多,手动修改就很麻烦了。
当初我下载“Java入学视频”时,视频的文件名很长,不便于阅读,于是一个个修改,但是几百个视频,修改起来很麻烦。
文件图片如下:

于是写了一个Java程序,解决了这个问题,实现批量修改文件名的功能。现在和大家分享这个程序,希望大家多多提建议:
  1. import java.io.File;

  2. public class FileUtils {
  3.     public static void main(String[] args) {

  4.         //需要修改的文件所在路径
  5.         File dir = new File("D:\\黑马训练营_JAVA视频\\");
  6.         //需要去掉的前缀名
  7.         String removeStr = "黑马程序员_毕向东_";
  8.         //调用静态方法,重命名文件
  9.         renameFile(dir, removeStr);
  10.     }
  11.    
  12.     // dir:需要修改文件所在目录    removeStr:文件名需要去掉的字符串
  13.     public static void renameFile(File dir, String removeStr) {
  14.         //获取文件对象
  15.         File[] files = dir.listFiles();
  16.         File newFile = null;
  17.         for(int i = 0; i < files.length; i++) {
  18.             //如果是目录,递归遍历
  19.             if(files[i].isDirectory()) {
  20.                 renameFile(files[i], removeStr);
  21.             }
  22.             //否则为文件
  23.             else {
  24.                 //获取文件名
  25.                 String fileName = files[i].getName();
  26.                 //如果文件名的前缀有需要去除的字符串
  27.                 if(fileName.startsWith(removeStr)) {
  28.                     //新的文件名:去掉前缀字符串剩下的部分
  29.                     String newName = fileName.substring(removeStr.length());
  30.                     //新的文件对象
  31.                     newFile = new File(dir+File.separator+newName);
  32.                     //重命名
  33.                     files[i].renameTo(newFile);
  34. //                    System.out.println(newFile);
  35.                 }
  36.             }
  37.         }
  38.     }
  39. }
复制代码

1.png (239.81 KB, 下载次数: 0)

视频的文件名很长

视频的文件名很长

评分

参与人数 1技术分 +1 收起 理由
Sword + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
赞一个,学了就能用。
回复 使用道具 举报
本帖最后由 棉/mg花/x糖 于 2013-5-23 12:42 编辑

楼主,你好,感觉还行,但是我拿来用不了,给我跑了一个异常!!欲哭无泪!
  1. Exception in thread "main" java.lang.NullPointerException
  2.         at com.yb.FileUtils.FileUtils.renameFile(FileUtils.java:21)
  3.         at com.yb.FileUtils.FileUtils.main(FileUtils.java:13)
复制代码
回复 使用道具 举报
本帖最后由 student 于 2013-5-23 14:24 编辑
棉/mg花/x糖 发表于 2013-5-23 12:40
楼主,你好,感觉还行,但是我拿来用不了,给我跑了一个异常!!欲哭无泪! ...

是不是你没有"D:\\黑马训练营_JAVA视频\\"这个目录,这个目录采用的是硬编码,可以根据自己文件保存目录的不同进行修改的。
回复 使用道具 举报
棉/mg花/x糖 发表于 2013-5-23 12:40
楼主,你好,感觉还行,但是我拿来用不了,给我跑了一个异常!!欲哭无泪! ...

还有,这个程序需要导入:
  1. import java.io.File;
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马