ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 复制多级文件夹

2021-01-24 13:33:06  阅读:197  来源: 互联网

标签:Java srcFile 对象 数据源 多级 destFile 文件夹 File new


  • 把“E:\itcast”这个文件夹复制到 F盘目录下
  • 分析步骤
      1. 创建数据源File对象,路径是E:\itcast
      1. 创建目的地File对象,路径是F:\ 
      1. 写方法实现文件夹的复制,参数为数据源File对象和目的地File对象
      1. 判断数据源File是否是文件
        是文件:直接复制,用字节流
        不是文件:在目的地下创建该目录,遍历获取该目录下的所有文件的File数组,得到 每一个File对象,回到3继续(递归)
public class CopyFoldersDemo {
public static void main(String[] args) throws IOException {
//创建数据源File对象,路径是E:\\itcast File srcFile = new File("E:\\itcast");
//创建目的地File对象,路径是F:\\
File destFile = new File("F:\\");








//写方法实现文件夹的复制,参数为数据源File对象和目的地File对象 copyFolder(srcFile,destFile);
}

//

private static void copyFolder(File srcFile, File destFile) throws IOException
{
//判断数据源File是否是目录 if(srcFile.isDirectory()) {
//在目的地下创建和数据源File名称一样的目录
String srcFileName = srcFile.getName();
File newFolder = new File(destFile,srcFileName); //F:\\itcast if(!newFolder.exists()) {
newFolder.mkdir();










}
//获取数据源File下所有文件或者目录的File数组 File[] fileArray = srcFile.listFiles();

//遍历该File数组,得到每一个File对象 for(File file : fileArray) {
//把该File作为数据源File对象,递归调用复制文件夹的方法
copyFolder(file,newFolder);










}
} else {
//说明是文件,直接复制,用字节流
File newFile = new File(destFile,srcFile.getName()); copyFile(srcFile,newFile);

















}
}
//字节缓冲流复制文件
private static void copyFile(File srcFile, File destFile) throws IOException { BufferedInputStream 
bis = new BufferedInputStream(new
FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024]; int len;
while ((len = bis.read(bys)) != -1) { bos.write(bys, 0, len);





}








bos.close();
bis.close();
}
}

标签:Java,srcFile,对象,数据源,多级,destFile,文件夹,File,new
来源: https://www.cnblogs.com/flowliver/p/14320660.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有