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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黄奕豪 于 2012-6-17 06:54 编辑

老早就想做这个东西了,但是由于一直在看视频,赶进度,所以没有弄,趁着某次机会的契机改了一下,就完工了~~~
用途:看教程的时候,是不是看完一个,点一个文件夹不爽啊?这个来了,将你所有文件夹里面的指定格式的文件提取出来,放在同一个文件夹去,看到你爽~~不过,你发觉没有,在电脑上搜索,一个拷贝,一个粘贴也能做到
前景:做个软件就那么简单,当你搞个GUI,将主函数内的获取目录和目的目录用个FileDialog代替,目标格式用个多选框来代替,再打包一下,一个提取软件就完成了~~
上代码:
  1. package getFile;

  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;

  8. public class AviGet {

  9. public static void main(String[] args) {
  10. // TODO Auto-generated method stub
  11. //文件格式名
  12. String key = ".avi";
  13. //在这里填入搜索文件夹目录
  14. File src = new File("E:\\黑马程序员_张孝祥_Java基础加强\\01_张孝祥Java高新技术_课程价值与目标介绍");
  15. //在这里填入目标文件目录
  16. File dest = new File("d:\\黑马程序员_张孝祥_Java基础加强");
  17. if((!src.exists())&&(!src.isDirectory())){
  18. System.out.println("请确定所要搜寻目录是否正确!");
  19. return;
  20. }
  21. if(!dest.exists()){
  22. dest.mkdir();
  23. }
  24. move(src,dest,key);
  25. }

  26. public static void move(File src, File dest,String key) {
  27. // TODO Auto-generated method stub
  28. File[] files = src.listFiles();
  29. for(int i = 0;i<files.length;i++){
  30. if((!files[i].isHidden())&&files[i].isDirectory()){
  31. move(files[i],dest,key);
  32. }else if((!files[i].isHidden())&&files[i].getName().endsWith(key)){
  33. String strname = files[i].getName();
  34. File destfile = new File(dest,strname);
  35. InputStream in = null;
  36. int len = -1;
  37. byte[] by = new byte[1024];
  38. OutputStream out = null;
  39. try {
  40. in = new FileInputStream(files[i]);
  41. out = new FileOutputStream(destfile);
  42. while((len = in.read(by))!=-1){
  43. out.write(by, 0, len);
  44. out.flush();
  45. }
  46. System.out.println("完成"+strname+"的复制!");
  47. } catch (IOException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. }
  51. finally{
  52. try{
  53. if(out!=null){
  54. out.close();
  55. }
  56. }catch (IOException e) {
  57. // TODO Auto-generated catch block
  58. e.printStackTrace();
  59. }
  60. try{
  61. if(in!=null){
  62. in.close();
  63. }
  64. }catch (IOException e) {
  65. // TODO Auto-generated catch block
  66. e.printStackTrace();
  67. }
  68. }
  69. }
  70. }

  71. }

  72. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞!很会学以致用!

查看全部评分

2 个回复

倒序浏览
诶呦,不错哦
回复 使用道具 举报
可以用下,呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马