复制多级文件夹
来源:互联网 发布:淘宝上的汝窑茶具 编辑:程序博客网 时间:2024/06/05 08:00
问题描述
要复制多级文件夹,即文件夹中包含文件夹和文件,文件夹中又包含文件和文件夹的。
基本思想
显然要用到递归,判断当前File对象是文件夹还是文件,如果是文件就直接复制;如果是文件夹,就在目的地创建同名文件夹,再对文件夹下的File对象进行同样的判断和操作。
代码
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/* * 复制目录 */public class FolderCopyDemo { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // 封装数据源 File srcFile = new File("E:\\srcFolder"); // 封装目的地File File destFile = new File("E:\\destFolder"); // 复制文件夹功能 copyFolder(srcFile, destFile); } private static void copyFolder(File srcFile, File destFile) throws IOException { // TODO Auto-generated method stub // 判断该File是文件夹还是文件 if (srcFile.isDirectory()) { // 文件夹 File newFolder =new File(destFile, srcFile.getName()); newFolder.mkdir(); //获取该File对象下的所有文件或文件夹File对象 File[] fileArray = srcFile.listFiles(); for(File file: fileArray){ copyFolder(file, newFolder); } } else { // 文件 File newFile = new File(destFile, srcFile.getName()); copyFile(srcFile, newFile); } } private static void copyFile(File srcFile, File newFile) throws IOException { // TODO Auto-generated method stub BufferedInputStream bis = new BufferedInputStream(new FileInputStream( srcFile)); BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(newFile)); byte[] bys = new byte[1024]; int len = 0; while ((len = bis.read(bys)) != -1) { bos.write(bys, 0, len); } bos.close(); bis.close(); }}
阅读全文
0 0
- 传智播客:复制多级文件夹
- 复制多级文件夹
- 复制多级文件夹
- Java复制多级文件夹
- 递归复制多级文件夹
- 复制多级文件夹
- java实现多级文件夹复制
- Java中多级文件夹复制
- Java中复制多级文件夹的方式
- IO流_复制多级文件夹案例
- java中递归实现复制多级文件夹
- File类的构造方法中的多级文件夹复制
- IO流--多级文件夹下的所有目录复制到指定目录下
- 创建多级文件夹
- vb 创建多级文件夹
- 创建多级文件夹
- 创建多级文件夹vc++
- PHP创建多级文件夹
- Android—多媒体(音频播放)
- 7/14 CCF YOCSEF学术报告会:区块链技术
- Opencv
- ListView加载不同的条目
- 32.最长的合法括号匹配
- 复制多级文件夹
- 从 1-15中,随机出来5个数,不能重复的
- 利用vs2015编写C语言遇见的错误集
- 使用cloc进行代码行统计
- linux第一天
- spring常用的一些注解以及注解注入总结
- 搜索专题:Balloons
- hihocoder1151(骨牌覆盖,1*2铺3*n)
- OpenCV2.x学习笔记一(图像噪声化与颜色缩减)