Java——复制单级文件夹、复制多级文件夹、复制文件的异常处理
一、复制单级文件夹
1、需求
把“D:\JavaSE”这个文件夹复制到模块目录下
2、思路
- 创建数据源目录File对象,路径是“D:\JavaSE”
- 获取数据源目录File对象的名称(JavaSE)
- 创建目的地目录File对象,路径名是模块名+JavaSE
- 判断目的地目录对应的File是否存在,如果不存在,则创建
- 获取数据源目录下所有文件的File数组
- 遍历File数组,得到每一个File对象,该File对象就是数据源文件
- 获取数据源文件File对象的名称
- 创建目的地文件File对象
- 复制文件
3、代码实现
import java.io.*;
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
//1. 创建数据源目录File对象,路径是“D:\\JavaSE”
File srcFolder = new File("D:\\JavaSE");
//2. 获取数据源目录File对象的名称(JavaSE)
String srcFolderName = srcFolder.getName();
//3. 创建目的地目录File对象,路径名是模块名+JavaSE
File destFolder = new File("ZiFuLiu", srcFolderName);
//4. 判断目的地目录对应的File是否存在,如果不存在,则创建
if (!destFolder.exists()) {
destFolder.mkdir();
}
//5. 获取数据源目录下所有文件的File数组
File[] listFiles = srcFolder.listFiles();
//6. 遍历File数组,得到每一个File对象,该File对象就是数据源文件
for (File srcFile : listFiles) {
//7. 获取数据源文件File对象的名称
String srcFileName = srcFile.getName();
//8. 创建目的地文件File对象
File destFile = new File(destFolder, srcFileName);
//9. 复制文件
copyFile(srcFile, destFile);
}
}
public static void copyFile(File srcFile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream