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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汤柳清 中级黑马   /  2014-2-8 16:05  /  1574 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima;

  2. /**
  3. *将一个目录下(该目录下可能还有目录)的.java文件复制到另一个目录
  4. *     
  5. */
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;

  10. public class CopyOfCopyFile {

  11.         public static void main(String[] args) throws IOException {

  12.                 File fromPath = new File(
  13.                                 "F:\\java视频\\毕向东PPT源码\\传智播客_Java培训_毕向东_Java基础源代码Codes");
  14.                 File toPath = new File("D:\\javaFile");
  15.                 copyDir(fromPath, toPath);
  16.         }

  17.         /**
  18.          * 定义功能,对目录进行拷贝
  19.          *
  20.          * @param fromPath
  21.          * @param toPath
  22.          * @throws IOException
  23.          */
  24.         private static void copyDir(File fromPath, File toPath) throws IOException {
  25.                 // 对给定的目录进行判断,不存在,则抛出异常
  26.                 if (!fromPath.exists()) {
  27.                         throw new RuntimeException("目录不存,请重新输入!");
  28.                 } else if (fromPath.isFile()) {
  29.                         if (fromPath.getName().endsWith(".java")) {
  30.                                 System.out.println(fromPath.getName().toString());
  31.                                 copyFiles(fromPath, toPath);
  32.                         }
  33.                 } else {
  34.                         File[] files = fromPath.listFiles(); // 将目录中的文件存储进数组
  35.                         for (File file : files) { // 对数组进行遍历

  36.                                 // 对文件进行判断,如果是文件,则继续调用copyDir方法,递归
  37.                                 if (file.isDirectory()) {

  38.                                         // 对目录进行递归,深度遍历
  39.                                         copyDir(file, toPath);
  40.                                 } else {
  41.                                         // 调用复制文件的功能
  42.                                         if (file.getName().endsWith(".java")) {
  43.                                                 System.out.println(file.getName().toString());
  44.                                                 copyFiles(fromPath, toPath);
  45.                                         }
  46.                                 }
  47.                         }
  48.                 }
  49.         }

  50.         private static void copyFiles(File fromFile, File toFile)
  51.                         throws IOException {
  52.                 FileInputStream fis = null;
  53.                 FileOutputStream fos = null;

  54.                 // 获取目标的绝对路径,并在目的地创建文件夹
  55.                 new File(toFile.getAbsoluteFile() + "\\").mkdirs();

  56.                 // 获取文件上传的目的地
  57.                 String newfileName = toFile.toString() + "\\\\";

  58.                 // 获取文件名
  59.                 String fileName = fromFile.getName();

  60.                 // 创建流关联文件,并写入目的地
  61.                 fis = new FileInputStream(fromFile);
  62.                 fos = new FileOutputStream(newfileName + fileName);
  63.                 byte[] buf = new byte[1024];
  64.                 int len = 0;
  65.                 while ((len = fis.read(buf)) != -1) {
  66.                         fos.write(buf, 0, len);
  67.                 }

  68.                 // 关流
  69.                 fis.close();
  70.                 fos.close();
  71.         }
  72. }
复制代码



IfDemo.java
Exception in thread "main" java.io.FileNotFoundException: F:\java视频\毕向东PPT源码\传智播客_Java培训_毕向东_Java基础源代码Codes\day02 (拒绝访问。)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at com.itheima.CopyOfCopyFile.copyFiles(CopyOfCopyFile.java:73)
        at com.itheima.CopyOfCopyFile.copyDir(CopyOfCopyFile.java:51)
        at com.itheima.CopyOfCopyFile.copyDir(CopyOfCopyFile.java:46)
        at com.itheima.CopyOfCopyFile.main(CopyOfCopyFile.java:19)


评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

2 个回复

倒序浏览
你加上这个试试
if (fromPath.isHidden)
    continue;

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
代码应该没有错,就是路径错了。找不到文件!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马