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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 饼子 中级黑马   /  2014-10-27 00:16  /  1345 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家有没感觉我视频资料的名称太长了?以至于有时候根部看不清后面是什么内容,而且一眼扫过去都是前缀名呀,有木有!我都是用列表模式查看的-。-!。对于我这个处女座的人来说太不能忍了,于是有了自己动手批量修改文件名的想法。
通过我们所学的内容可以“轻松”的搞定。其实也没有那么轻松,因为是第一次设计程序,没有啥经验,在设计这个程序的时候,我用了七八个小时的时间,走了N多冤枉路,一度想用头撞墙。。。不过因为对问题的执着,我还是坚持了下来。
那么要怎么该名字呢?用renameto方法
renameto方法的用法是
File f1=new File(原来的路径)
File f2=new File(更改后的路径)
f1.renameTo(f2)
由于是遍历文件夹获取文件,所以File的构造函数里的路径名用变量表示
更改后的路径的父目录不变,只需改name即可。
修改name的原理是用字符串中的截取子串方法String str.subString(indexOf(“-”)+1)//用“-”截取子串,+1是因为验证发现子串包含“-”所以+1.
开始想用过滤器,验证后发现,使用过滤器后用listFiles什么都获取不到。 因为是 name.endsWith(".avi"),在最上层目录中只有相应天数的文件夹,所以获取不到avi文件对象。不知道用过滤器怎么用。
/*
* 需求:简化视频名称。
* 例如:传智播客毕向东Java基础视频教程-day13-01-String(概述)。avi
* 重命名为:day13-01-String(概述)。avi
* */
package demo;
import java.io.File;
public class Demo {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                File dir=new File("d:\\shipin2");//存放视频的总目录,我的总目录下面还有天数目录。
                show(dir);
        }
        public static void show(File dir){
                File [] files=dir.listFiles();//用listFiles扫描多层文件目录,返回问价对象
                for(int x=0;x<files.length;x++){//把多级目录中的对象取出,存入到一个File数组中。
                        if(files[x].isDirectory())//如果是目录就递归。
                                show(files[x]);
                        if(files[x].getName().endsWith(".avi"))//如果不是目录 就是对象,对对象的名字筛选,取出avi文件。
                        rename(files[x]);//将vai类型的文件对象改名
                        }
        }
        public static void rename(File f){
                String name =f.getName();
                String newName=name.substring(name.indexOf("-")+1);//用“-”截取子串
                System.out.println(newName);
                File newFile=new File(f.getParent(),newName);//父目录不改变,只需要改变文件名即可。
                f.renameTo(newFile);        //改名的动作
        }
}
免责声明:该文章经笔者本人验证之后,被修改的视频没有任何异常,可以正常播放。如果各位同学想要尝试一下,建议尽量用备份数据。
如果该代码有什么不足,请联系我。
该文章仅是为了探讨技术,无任何不尊重官方教程的意思。嘿嘿:)

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

7 个回复

倒序浏览
晚上好清静呀
回复 使用道具 举报
很给力~支持一下...
回复 使用道具 举报
为什么木有人呀
回复 使用道具 举报
很有想法,赞一个
回复 使用道具 举报
顶一个啊
回复 使用道具 举报
饼子 中级黑马 2014-10-27 11:33:47
7#
人工置顶
回复 使用道具 举报
这个还是有局限性的,要根据具体的文件名来定义截取规则的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马