- package com.itheima;
- /**
- *将一个目录下(该目录下可能还有目录)的.java文件复制到另一个目录
- *
- */
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class CopyOfCopyFile {
- public static void main(String[] args) throws IOException {
- File fromPath = new File(
- "F:\\java视频\\毕向东PPT源码\\传智播客_Java培训_毕向东_Java基础源代码Codes");
- File toPath = new File("D:\\javaFile");
- copyDir(fromPath, toPath);
- }
- /**
- * 定义功能,对目录进行拷贝
- *
- * @param fromPath
- * @param toPath
- * @throws IOException
- */
- private static void copyDir(File fromPath, File toPath) throws IOException {
- // 对给定的目录进行判断,不存在,则抛出异常
- if (!fromPath.exists()) {
- throw new RuntimeException("目录不存,请重新输入!");
- } else if (fromPath.isFile()) {
- if (fromPath.getName().endsWith(".java")) {
- System.out.println(fromPath.getName().toString());
- copyFiles(fromPath, toPath);
- }
- } else {
- File[] files = fromPath.listFiles(); // 将目录中的文件存储进数组
- for (File file : files) { // 对数组进行遍历
- // 对文件进行判断,如果是文件,则继续调用copyDir方法,递归
- if (file.isDirectory()) {
- // 对目录进行递归,深度遍历
- copyDir(file, toPath);
- } else {
- // 调用复制文件的功能
- if (file.getName().endsWith(".java")) {
- System.out.println(file.getName().toString());
- copyFiles(fromPath, toPath);
- }
- }
- }
- }
- }
- private static void copyFiles(File fromFile, File toFile)
- throws IOException {
- FileInputStream fis = null;
- FileOutputStream fos = null;
- // 获取目标的绝对路径,并在目的地创建文件夹
- new File(toFile.getAbsoluteFile() + "\\").mkdirs();
- // 获取文件上传的目的地
- String newfileName = toFile.toString() + "\\\\";
- // 获取文件名
- String fileName = fromFile.getName();
- // 创建流关联文件,并写入目的地
- fis = new FileInputStream(fromFile);
- fos = new FileOutputStream(newfileName + fileName);
- byte[] buf = new byte[1024];
- int len = 0;
- while ((len = fis.read(buf)) != -1) {
- fos.write(buf, 0, len);
- }
- // 关流
- fis.close();
- fos.close();
- }
- }
复制代码
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)
|