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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kingowe 中级黑马   /  2015-5-18 15:47  /  278 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java中怎样把一个文件夹中的所有子文件夹和子文件复制到另一个目录呢?  是文件夹的复制,不是文件哦 , 在网上找了好多,都挺麻烦的,第二次问了,没人回答啊

4 个回复

倒序浏览
用递归的方式
如果你一定要只复制文件夹,下面不要文件复制的方法,文件夹复制不判断就好
  1. import java.io.*;
  2. class CopyWenJianJia
  3. {
  4.         public static void main(String[] args)throws Exception
  5.         {
  6.                 //源文件夹
  7.                 String yuan = "C:\\nimeizide";
  8.                 //目的地
  9.                 String mudi = "D:\\nimeizide";
  10.                 //建立目标文件夹
  11.                 (new File(mudi)).mkdirs();
  12.                 //获取源文件夹当下的文件或目录
  13.                 File[] files = (new File(yuan)).listFiles();
  14.                 for(File file : files)
  15.                 {
  16.                         if(file.isDirectory())
  17.                         {
  18.                                 String yuanDir = yuan + "\\" + file.getName();
  19.                                 String mudiDir = mudi + "\\" + file.getName();
  20.                                 //复制目录
  21.                                 copyDir(yuanDir, mudiDir);
  22.                         }
  23.                         else
  24.                         {
  25.                                 copyFile(file, new File(mudi + "\\" + file.getName()));
  26.                         }
  27.                 }

  28.         }
  29.         //复制文件夹
  30.         public static void copyDir(String yuanDir, String mudiDir)throws Exception
  31.         {
  32.                 (new File(mudiDir)).mkdirs();
  33.                 File[] files = (new File(yuanDir)).listFiles();
  34.                 for(File file : files)
  35.                 {
  36.                         if(file.isFile())
  37.                         {
  38.                                 File yuanFile = file;//源文件
  39.                                 File mudiFile = new File(new File(mudiDir).getAbsolutePath() + "\\" + file.getName());
  40.                                 copyFile(yuanFile, mudiFile);
  41.                         }
  42.                         else
  43.                         {
  44.                                 String yuanJia = yuanDir + "\\" + file.getName();
  45.                                 String mudiJia = mudiDir + "\\" + file.getName();
  46.                                 copyDir(yuanJia, mudiJia);
  47.                         }
  48.                 }
  49.         }
  50.         //复制文件
  51.         public static void copyFile(File yuanFile, File mudiFile)throws Exception
  52.         {
  53.                 BufferedInputStream buis = new BufferedInputStream(new FileInputStream(yuanFile.getAbsoluteFile()));
  54.                 BufferedOutputStream buos = new BufferedOutputStream(new FileOutputStream(mudiFile.getAbsoluteFile()));
  55.                 byte[] buf = new byte[1024];
  56.                 int len;
  57.                 while((len = buis.read(buf)) != -1)
  58.                 {
  59.                         buos.write(buf, 0, len);
  60.                         buos.flush();
  61.                 }
  62.                 buis.close();
  63.                 buos.close();
  64.         }

  65. }
复制代码



评分

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

查看全部评分

回复 使用道具 举报
少年 是复制文件夹啊 又不是单个文件,需要把里面的都复制了~~~~~当然不会简单了
回复 使用道具 举报 1 0
jiangwenjun 发表于 2015-5-18 16:58
用递归的方式
如果你一定要只复制文件夹,下面不要文件复制的方法,文件夹复制不判断就好

非常感谢啊!!!
回复 使用道具 举报
xgd6612 发表于 2015-5-18 17:02
少年 是复制文件夹啊 又不是单个文件,需要把里面的都复制了~~~~~当然不会简单了 ...

哈哈,多看几遍就容易了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马