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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Vista

中级黑马

  • 黑马币:46

  • 帖子:28

  • 精华:0

本帖最后由 Vista 于 2014-8-7 22:01 编辑

       本人在看教学视频的时候,发现视频大多数都是一个文件夹里面有一个或几个视频,看完之后就得换文件夹,很麻烦。
所以我自己做了一个小程序,专门用来把文件夹里的视频给提取出来,先看看效果图。
       这是张孝祥老师的视频教程,每个文件夹里面都有视频(用来做测试,视频不全)。

程序运行后,文件夹里面的视频都提取出来了,并且文件夹都删掉了。下面是程序执行之后的效果图。


下面是源码:
  1. <p>
  2. import java.io.File;</p><p>public class FiltMoveTool {
  3. private static String rootPath;//用于记录根目录路径</p><p> public static void main(String[] args) {
  4.   String dirPath = "F:\\baiduyundownload\\张孝祥2010年贺岁视频:Java高新技术";
  5.   extractFile(dirPath,true);
  6. }</p><p> //提取文件夹里面的文件
  7. private static void extractFile(String dirPath,boolean flag) {
  8.   if(flag){
  9.    rootPath = dirPath;//记录根目录路径
  10.   }
  11.   File root = new File(dirPath);//根目录
  12.   File[] dirFiles = root.listFiles();//获得所有的文件夹
  13.   for (File file : dirFiles) {</p><p>   if(file.isDirectory()){
  14.     String filePath = file.getAbsolutePath();//获得文件夹的绝对路径</p><p>    extractFile(filePath,false);//递归调用
  15.     deleteFile(file);//删除文件夹
  16.    }else
  17.     if(file.isFile()){</p><p>     String name = file.getName();//获取文件名
  18.      String sub = name.substring(name.length()-3, name.length());//得到后缀名  如  avi </p><p>     if("avi".equals(sub)){
  19.       //System.out.println(rootPath +"<a href='file://\\"+file.getName'>\\"+file.getName</a>());
  20.       File fnew = new File(rootPath +"<a href='file://\\"+file.getName'>\\"+file.getName</a>()); //将文件移到新文件里
  21.       file.renameTo(fnew);
  22.      }</p><p>    }
  23.   }
  24. }
  25. //删除文件夹以及里面所有文件
  26. private static void deleteFile(File file){</p><p>  if(file.isFile()){
  27.    file.delete();
  28.   }else if(file.isDirectory()){
  29.    File files[] = file.listFiles();
  30.    for(int i=0;i<files.length;i++){
  31.     deleteFile(files[i]);
  32.    }
  33.   }
  34.   file.delete();
  35. }
  36. }
  37. </p><p> </p>
复制代码

评分

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

查看全部评分

26 个回复

倒序浏览
楼主有才!!!我也是深深受到这个问题困扰了的!这里面涉及了哪些知识点和技术啊?求告知哈!等等我也学习哈
回复 使用道具 举报
alexanda 发表于 2014-8-7 22:01
楼主有才!!!我也是深深受到这个问题困扰了的!这里面涉及了哪些知识点和技术啊?求告知哈!等等我也学习 ...

其实就涉及到了文件的操作。。。很简单的,加油
回复 使用道具 举报
代码不知道怎么乱了,再发一遍。。。。

  1. import java.io.File;

  2. public class FiltMoveTool {
  3.         private static String rootPath;//用于记录根目录路径

  4.         public static void main(String[] args) {
  5.                 String dirPath = "F:\\baiduyundownload\\张孝祥2010年贺岁视频:Java高新技术";
  6.                 extractFile(dirPath,true);
  7.         }

  8.         //提取文件夹里面的文件
  9.         private static void extractFile(String dirPath,boolean flag) {
  10.                 if(flag){
  11.                         rootPath = dirPath;//记录根目录路径
  12.                 }
  13.                 File root = new File(dirPath);//根目录
  14.                 File[] dirFiles = root.listFiles();//获得所有的文件夹
  15.                 for (File file : dirFiles) {

  16.                         if(file.isDirectory()){
  17.                                 String filePath = file.getAbsolutePath();//获得文件夹的绝对路径

  18.                                 extractFile(filePath,false);//递归调用
  19.                                 deleteFile(file);//删除文件夹
  20.                         }else
  21.                                 if(file.isFile()){

  22.                                         String name = file.getName();//获取文件名
  23.                                         String sub = name.substring(name.length()-3, name.length());//得到后缀名  如  avi

  24.                                         if("avi".equals(sub)){
  25.                                                 //System.out.println(rootPath +"\\"+file.getName());
  26.                                                 File fnew = new File(rootPath +"\\"+file.getName()); //将文件移到新文件里
  27.                                                 file.renameTo(fnew);
  28.                                         }

  29.                                 }
  30.                 }
  31.         }
  32.         //删除文件夹以及里面所有文件
  33.         private static void deleteFile(File file){

  34.                 if(file.isFile()){
  35.                         file.delete();
  36.                 }else if(file.isDirectory()){
  37.                         File files[] = file.listFiles();
  38.                         for(int i=0;i<files.length;i++){
  39.                                 deleteFile(files[i]);
  40.                         }
  41.                 }
  42.                 file.delete();
  43.         }
  44. }
复制代码
回复 使用道具 举报
多谢分享,同样也有这样的困扰,看来的努力学习,害的会应用啊
回复 使用道具 举报
楼主给力,活学活用!
回复 使用道具 举报
这么给力!楼主太厉害了!
回复 使用道具 举报
io流还没学到  不过谢谢分享了~~~~
回复 使用道具 举报
厉害,学以致用
回复 使用道具 举报
厉害,学以致用
回复 使用道具 举报
学以致用·
回复 使用道具 举报
不错,学完IO就立即用,这实践经验好
回复 使用道具 举报
楼主膜拜啊
回复 使用道具 举报
yqj 中级黑马 2014-8-8 16:00:04
14#
lz给力,赞一个
回复 使用道具 举报
厉害,这只是基础应用么,对我来说,感觉有点遥远。:)
回复 使用道具 举报
学以致用,楼主好样的
回复 使用道具 举报
楼主有才。
回复 使用道具 举报
赞一个{:3_47:}
回复 使用道具 举报
左脑想你 来自手机 中级黑马 2014-8-13 19:10:57
19#
我也写了不过我想给他搞成可视化界面~~到时就有通用性了
回复 使用道具 举报
活学活用,很好
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马