美文网首页java复习
2020-07-04复制文件夹

2020-07-04复制文件夹

作者: 智障猿 | 来源:发表于2020-07-08 08:40 被阅读0次

复制单级文件夹

  • 步骤
    ①创建数据源目录File对象,路径是E:\test
    ②获取数据源目录File对象的名称 (itcast)
    ③创建目的地目录File对象,路径名(自拟)
    ④判断目的地File对象对应的目录是否存在,如果不存在就创建
    ⑤获取数据源目录下所以的File数组
    ⑥遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
    ⑦获取数据源文件File对象的名称
    ⑧创建目的地文件File对象,路径名为目的地+文件File对象名称
    ⑨复制文件(由于文件不仅仅是文本文件,所以使用缓冲字节流)
 public static void main(String[] args) throws IOException {
        //创建数据源目录File对象,路径是E:\\test
        File dis = new File("E:\\test");
        //获取数据源目录File对象的名称 (itcast)
        String disName = dis.getName();
        //创建目的地目录File对象,路径名(自拟)
        String path = "test\\"+disName;
        File dos =new File(path);
        //判断目的地File对象对应的目录是否存在,如果不存在就创建
        if(!dos.exists()){
            dos.mkdir();
        }
        //获取数据源目录下所以的File数组
        File[] listFiles = dis.listFiles();
        //遍历File数组,得到每一个File对象,该File对象,其实就是数据源文件
        for (File f: listFiles) {
            //获取数据源文件File对象的名称
            String srcname = f.getName();
            //创建目的地文件File对象,路径名为目的地+文件File对象名称
            File dosfile = new File(dos,srcname);
            //复制文件
            copy(f,dosfile);
        }

    }
 public static void copy(File src,File dos) throws IOException {
        BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(src));
        BufferedOutputStream bufferedOutputStream =new BufferedOutputStream(new FileOutputStream(dos));
        byte[] bytes = new byte[1024];
        int len;
        while((len = bufferedInputStream.read(bytes))!=-1){
            bufferedOutputStream.write(bytes);
        }
        bufferedInputStream.close();
        bufferedOutputStream.close();

 }

复制多级文件夹(递归)

  • 思路
    ①创建数据源File对象,
    ②创建目的地File对象
    ③写方法实现文件夹的复制,参数为数据源File对象和目的地File对象
    ④判断数据源File是否是目录
    a.在目的地下创建和数据源File名称一样的目录。
    b.获取数据源File下所有文件或者目录的File数组
    c.遍历该File数组,得到每一个File对象
    d.把该File作为数据源File对象,递归调用复制文件夹的方法
public static void main(String[] args) throws IOException {
        File file  = new File("E:\\test");
        File dosfile  = new File("F:\\");
        copyFolder(file,dosfile);
    }
public static void copyFolder(File srcFiles,File desFile) throws IOException {
        //判断数据源是否是目录
        if (srcFiles.isDirectory()){
            //在目的地下创建和数据源file名称一样的目录
            String srcFileName = srcFiles.getName();
            File newFolder = new File(desFile,srcFileName);
            if (!newFolder.exists()){
                newFolder.mkdir();
            }
            //获取数据源File下所有文件或者目录的File数组
            File[] listFiles = srcFiles.listFiles();
            for (File file:listFiles){
                //把该File作为数据源File对象,递归调用复制文件夹的方法
                copyFolder(file,newFolder);
            }
        }else {
            //说明是文件,直接复制,用字节流
            File newFile = new File(desFile,srcFiles.getName());
            copyFile(srcFiles,newFile);
        }
    }
public static void copyFile(File srcFile,File desFile) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
        byte[] bytes = new byte[1024];
        int len;
        while ((len=bis.read(bytes))!=-1){
            bos.write(bytes);
  }
        bis.close();
        bos.close();
  }

相关文章

  • 2020-07-04复制文件夹

    复制单级文件夹 步骤①创建数据源目录File对象,路径是E:\test②获取数据源目录File对象的名称 (itc...

  • Linux常用命令

    cp 复制复制文件夹的时候,需要复制整个文件夹和文件夹下面的所有文件需要用到参数r 例子1 将test文件夹复制...

  • linux如何复制文件夹和移动文件夹

    linux如何复制文件夹和移动文件夹

  • linux如何复制移动文件

    linux如何复制文件夹和移动文件夹 linux下文件的复制、移动与删除命令为:cp,mv,rm 一、文件复制命令...

  • 常用Linux命令

    文件复制 文件远程复制 删除 删除文件 删除非空文件夹 文件移动 移动文件 移动文件夹下的所有 文件远程复制 用户...

  • IO流小练习-JAVA 复制文件,复制文件夹

    练习要求: 实现复制源文件srcFile到目标文件destFile。 复制文件夹,使用递归将文件夹中的文件复制到目...

  • element 中的文件复制工具 cp-cli

    1. 文件的复制 整个文件夹的复制

  • linux指令篇

    复制 将一个文件夹下的所有内容复制到另一个文件夹下 将一个文件夹复制到另一个文件夹下 删除一个文件夹及其下面的所有...

  • docker中COPY和VOLUME细节分析

    COPY COPY即复制的意思,和linux中的cp类似。linux中可复制如下 文件 ---》 文件夹 文件夹 ...

  • 常用LINUX指令总结

    复制cp将一个目录下所有文件(不包括文件夹),复制到另一个文件夹中cp 源文件夹地址// 目标文件夹地址(注意...

网友评论

    本文标题:2020-07-04复制文件夹

    本文链接:https://www.haomeiwen.com/subject/dgapqktx.html