java实现系统多级文件夹复制

网友投稿 331 2022-10-06


java实现系统多级文件夹复制

本文实例为大家分享了java实现系统多级文件夹复制的具体代码,供大家参考,具体内容如下

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

/*

* 需求:复制多级文件夹

*

* 数据源:D:\\1

* 目的地:F:\\新建文件夹

*

* 分析:

* A:封装数据源File

* B:封装目的地File

http:// * C:判断该File是文件夹还是文件

* a:是文件夹

* 就在目的地目录下创建该文件夹

* 获取该File对象下的所有文件或者文件夹File对象

* 遍历得到每一个File对象

* 回到C

* b:是文件

* 就复制(字节流)

*/

public class C1 {

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

File srcFolder = new File("D:\\1");

File dstFolder = new File("F:\\新建文件夹");

judge(srcFolder,dstFolder);

}

private static void judge(File srcFolder,File dstFolder) throws IOException {

if(srcFolder.isDirectory()){

File newFolder = new File(dstFolder,srcFolder.getName());

newFolder.mkdir();

File[] fileArr = srcFolder.listFiles();

for(File f:fileArr){

judge(f, newFolder);

}

}else{

File newFile = new File(dstFolder,srcFolder.getName());

// System.out.println(newFile);

copyFile(srcFolder,newFile);

}

}

private static void copyFile(File srcFolder, File newFile) throws IOException {

// TODO Auto-generated method stub

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(

srcFolder));

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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【网络安全】拒绝服务之SYN Flood同步包风暴详解,理论结合实战演练!(避免拒绝授权访问或拒绝服务攻击的网络安全服务是)
下一篇:大神论坛 逆向脱壳分析基础学习笔记四 堆栈篇(大神论坛5043)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~