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

© zl78365336 中级黑马   /  2013-12-6 23:15  /  1138 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zl78365336 于 2013-12-7 00:10 编辑

怎样用递归与拷贝文件夹来联系,完善下面的代码呢?


  1. import java.io.*;

  2. public class CopyFilesTest {
  3.         public static void main(String[] args) throws Exception {
  4.                 File src = new File("e:/zz");
  5.                 File des = new File("e:/zl");
  6.                 showDir(src);
  7.         }

  8.         public static void showDir(File dir) {

  9.                 File[] files = dir.listFiles();
  10.                 for(int x=0;x<files.length;x++){
  11.                         if(files[x].isDirectory())//判断是否为文件夹
  12.                                 showDir(files[x]);//是文件夹,递归
  13.                         else
  14.                                 ······
  15.                 }
  16.         }


复制代码

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

3 个回复

倒序浏览
这个例子毕老师20天的视频不是有讲吗、、、、
回复 使用道具 举报
让他自己调用自己的方法,直到进到根目录下,才执行读写操作
回复 使用道具 举报
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;


  6. public class FileCopy
  7. {
  8.         private static String Path_1="E:\\1";
  9.         private static String Path_2="E:\\2";
  10.         public static void main(String[] args) throws Exception
  11.         {
  12.                 File file_in=new File(Path_1);
  13.                 FileCopy fc=new FileCopy();
  14.                 fc.ListFile(file_in.listFiles());
  15.         }
  16.         public void ListFile(File[] files) throws Exception
  17.         {
  18.                 if(files!=null)
  19.                 for(File file:files)
  20.                 {
  21.                         if(file.isDirectory())
  22.                         {
  23.                                 File fileinfo=new File(file.getPath().replace(Path_1,Path_2));
  24.                                 if(!fileinfo.exists())
  25.                                         fileinfo.mkdir();
  26.                                 ListFile(file.listFiles());
  27.                         }
  28.                         else if(file.isFile())
  29.                         {
  30.                                 File fileinfo=new File(file.getPath().replace(Path_1, Path_2));
  31.                                 if(!fileinfo.exists())
  32.                                 {
  33.                                         System.out.println(fileinfo.getPath());
  34.                                         fileinfo.createNewFile();
  35.                                         BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
  36.                                         BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(fileinfo));
  37.                                         int i=-1;
  38.                                         while(-1!=(i=bis.read()))
  39.                                         {
  40.                                                 bos.write(i);
  41.                                         }
  42.                                         bos.flush();
  43.                                         bos.close();
  44.                                         bis.close();
  45.                                 }
  46.                         }
  47.                 }
  48.         }
  49. }
复制代码

我写程序时文件夹是只读的不能复制,搞了好半天

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1 可以加些注释和自己的理解!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马