ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

拷贝文件夹的方法

2021-08-23 16:33:06  阅读:167  来源: 互联网

标签:String filepath toFilepath 文件夹 File new 拷贝 方法 fromFile


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestCopyFile {

    private static int a = 5;

    public static void main(String[] args) {
        //需要复制的目标文件或目标文件夹
        String pathname = "C:\\Users\\w_wangsh\\Desktop\\升级脚本\\20210625\\";
        File fromFile = new File(pathname);
        //复制到的位置
        String topathname = "C:\\Users\\w_wangsh\\Desktop\\a";
        File toFile = new File(topathname);
        try {
            copy(fromFile,toFile);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void copy(File fromFile, File toFile) throws Exception {
        byte[] b = new byte[1024];
        int a;
        FileInputStream fis;
        FileOutputStream fos;
        if (fromFile.isDirectory()) {
            String filepath = fromFile.getAbsolutePath();
            filepath=filepath.replaceAll("\\\\","/");
            String toFilepath = toFile.getAbsolutePath();
            toFilepath=toFilepath.replaceAll("\\\\","/");
            int lastIndexOf = filepath.lastIndexOf("/");
            toFilepath = toFilepath + filepath.substring(lastIndexOf,filepath.length());
            File copy=new File(toFilepath);
            //复制文件夹
            if (!copy.exists()) {
                copy.mkdir();
            }
            //遍历文件夹
            for (File f : fromFile.listFiles()) {
                copy(f,copy);
            }
        } else {
            if (toFile.isDirectory()) {
                String filepath = fromFile.getAbsolutePath();
                filepath=filepath.replaceAll("\\\\","/");
                String toFilepath = toFile.getAbsolutePath();
                toFilepath=toFilepath.replaceAll("\\\\","/");
                int lastIndexOf = filepath.lastIndexOf("/");
                toFilepath = toFilepath + filepath.substring(lastIndexOf,filepath.length());

                //写文件
                File newFile = new File(toFilepath);
                fis = new FileInputStream(fromFile);
                fos = new FileOutputStream(newFile);
                while ((a = fis.read(b)) != -1) {
                    fos.write(b);
                }
            } else {
                //写文件
                fis = new FileInputStream(fromFile);
                fos = new FileOutputStream(toFile);
                while ((a = fis.read(b)) != -1) {
                    fos.write(b);
                }
            }

        }
    }

}

 

标签:String,filepath,toFilepath,文件夹,File,new,拷贝,方法,fromFile
来源: https://www.cnblogs.com/361ky/p/15176450.html

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

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

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

ICode9版权所有