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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嘿~~ 中级黑马   /  2014-10-15 16:32  /  1504 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;

  5. public class Copy {
  6.         private static File newDest = null;
  7.         private static FileInputStream fis = null;
  8.         private static FileOutputStream fos = null;;
  9.         /*
  10.          * 拷贝一个多级文件夹,文件里包含音频和视频文件
  11.          *
  12.          * 1 因为源文件夹下包含各类文件,因此采用字节流读写
  13.          * 2 不仅仅要复制文件,还要复制源文件夹,这里用到File类的构造函数在目标文件夹下创建同名同级文件夹
  14.          * 3 这里要用到getName()方法来获取对应的文件夹或者文件名
  15.          */
  16.         public static void main(String[] args) throws IOException {
  17.                 // 源文件
  18.                 File  source = new File("c:\\java");
  19.                 //创建一个同名的一级目录
  20.                 File dest = new File("d:",source.getName());
  21.                 //创建目标文件夹
  22.                 if(!dest.exists())
  23.                         dest.mkdir();
  24.                
  25.                 copyFile(source,dest);
  26.         }
  27.         public static void copyFile(File source,File dest) throws IOException{
  28.                
  29.                 File[] files = source.listFiles();
  30.                 for(File file : files){
  31.                         //每次遍历时,都要在目标文件夹下创建同名同级文件夹或者文件
  32.                         newDest = new File(dest,file.getName());
  33.                         //打印遍历到的文件或者文件夹
  34.                         System.out.println(newDest);
  35.                         if(file.isDirectory()){
  36.                                 //如果遍历到的是文件夹,就在目标文件夹下创建同名同级文件夹
  37.                                 if(!newDest.exists())
  38.                                         newDest.mkdir();
  39.                                 copyFile(file,newDest );
  40.                         }
  41.                         else{
  42.                                 //如果遍历到的是文件,就在目标文件夹下创建同名同级文件并写入
  43.                                 fis  = new FileInputStream(file);
  44.                                 fos  = new FileOutputStream(newDest);
  45.                                 byte[] buf = new byte[1024];
  46.                                 int len = 0;
  47.                                 while((len=fis.read(buf))!=-1){
  48.                                         fos.write(buf,0,len);
  49.                                         fos.flush();
  50.                                 }
  51.                                 fis.close();
  52.                                 fos.close();
  53.                         }
  54.                 }
  55.         }

  56. }


  57. 我自己做的,不足之处还望指教
复制代码


评分

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

查看全部评分

8 个回复

倒序浏览
赞一个~~~~~
回复 使用道具 举报
怎么感觉代码看不懂。。
回复 使用道具 举报
Eagle 发表于 2014-10-16 08:32
怎么感觉代码看不懂。。

哪一点看不懂 啊
回复 使用道具 举报

嘿嘿。是我还没学到。不是你代码问题、
回复 使用道具 举报
Eagle 发表于 2014-10-16 08:50
嘿嘿。是我还没学到。不是你代码问题、

我也是菜鸟,加油吧
回复 使用道具 举报
Eagle 高级黑马 2014-10-16 09:03:11
7#
嘿~~ 发表于 2014-10-16 08:51
我也是菜鸟,加油吧

正努力学习中。
回复 使用道具 举报
new999 中级黑马 2014-10-16 10:33:27
8#
加油~~~     
回复 使用道具 举报
我也做了一个可以复制多级文件夹目录和文件到指定的目录下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马