栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现目录拷贝

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现目录拷贝

废话不多说,上代码

copyDir()【目录拷贝】
    
    private static void copyDir(File srcFile, File descFile) throws IOException {
        // 获取当前源目录下子目录
        File[] files = srcFile.listFiles();
        // 判断当前源目录下是否有目录
        if(files == null){ // 若无,则只建立源目录
            makeDir(srcFile, descFile);
            return;
        }else{// 若有,则判断是否为文件
            // 在目的目录创建源目录
            makeDir(srcFile, descFile);
            // 更新目的目录
            String s;
            if(descFile.getParent() == null) {
                s = descFile.getPath() + srcFile.getName();
            }else{
                s = descFile.getPath() + "/" + srcFile.getName();
            }
            descFile = new File(s);
            // 循环遍历源目录下所有文件或目录
            for(File value : files){
                // 判断是否为文件
                if(value.isFile()){// 若是文件,则进行拷贝
                    // 完成文件拷贝
                    copy(value, descFile);
                }else{ // 若是目录,则进行递归
                    copyDir(value, descFile);
                }
            }
        }
    }
makeDir()【创建目录】
    
    private static void makeDir(File srcFile, File descFile) {
        String s;
        // 获取路径字符串
        if(descFile.getParent() == null) {
            s = descFile.getPath() + srcFile.getName();
        }else{
            s = descFile.getPath() + "/" + srcFile.getName();
        }
        File newDir = new File(s);
        newDir.mkdir();
    }
 copy()【拷贝文件】
    
    private static void copy(File value, File descFile) throws IOException {
        String s;
        if(descFile.getParent() == null) {
            s = descFile.getPath() + value.getName();
        }else{
            s = descFile.getPath() + "/" + value.getName();
        }
        FileOutputStream fos = new FileOutputStream(s);
        FileInputStream fis = new FileInputStream(value);
        // 以1MB为大小拷贝
        byte[] bytes = new byte[1024 * 1024];
        int count = 0;
        while((count = fis.read(bytes)) != -1){
            fos.write(bytes,0,count);
        }
        fos.flush();
        fos.close();
        fis.close();
    }
 主方法
    public static void main(String[] args) throws IOException {
        // 源目录
        File srcFile = new File("D:/BaiduNetdiskDownload/CopyTest");
        // 目标目录
        File descFile = new File("D:/迅雷下载");
        // 拷贝目录
        copyDir(srcFile, descFile);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777964.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号