文件夹的复制(文件的递归加IO流的文件读写 )

来源:互联网 发布:青岛十五中行知楼 编辑:程序博客网 时间:2024/06/05 11:44

文件递归的升级版大致思想和文件的递归相同 文件递归参考前一章

package com.file;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;/** * 复制 文件夹 将 文件夹D:/paidashi中的所有文件和文件夹复制到 * 文件夹D:/paidashi2中 *  * @author Administrator * */public class TestB {public static void dg(File f, File ff) throws Exception {// 判断 必须 ff不存在 而且 f是文件夹才创建if (!ff.exists() && f.isDirectory()) {ff.mkdirs();}// 判断是否 存在if (f.exists()) {// 判断是否为空if (!f.equals(null)) {// 判断 是否文件夹 是就打开 不是 就 复制if (f.isDirectory()) {// 得到 所有的 File文件File[] lf = f.listFiles();for (File k : lf) {// 得到文件的 绝对路径String s = k.getAbsolutePath();// 截取 后面相同的部分String ns = s.substring(11, s.length());// 拼到一块 然后 得到一个新的字符串String nss = "D:/paidashi2" + ns;// 利用新的字符串 创建成 新的 文件File n = new File(nss);// 调用递归 传入 f的文件 和新文件dg(k, n);}} else {// 流 复制FileInputStream fi = new FileInputStream(f);FileOutputStream fo = new FileOutputStream(ff);byte[] b = new byte[1024];int a = 0;while ((a = fi.read(b)) != -1) {fo.write(b);fo.flush();}fo.close();fi.close();}}} else {System.out.println("不存在");}}public static void main(String[] args) throws Exception {dg(new File("D:/paidashi"), new File("D:/paidashi2"));}}


原创粉丝点击