美文网首页
Java,复制文件夹及所有子文件,并排重

Java,复制文件夹及所有子文件,并排重

作者: 小明好爱学习 | 来源:发表于2020-02-20 18:28 被阅读0次

    直接复制下面代码即可,可直接使用

    public static void moveFile(String orgin_path, String moved_path) {
            File[] files = new File(orgin_path).listFiles();
            for (File file : files) {
                if (file.isFile()) {// 如果是文件
                    File movedFile = new File(moved_path + File.separator + file.getName());
                      // 如果文件已经存在则跳过
                    if (movedFile.exists()) {
                        System.out.println("文件已经存在1:" + file.getAbsolutePath());
                        System.out.println("文件已经存在2:" + movedFile.getAbsolutePath());
                        continue;
                    } else {
                        // 否则复制
                        try {
                            FileUtil.copyFile(file, movedFile);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                if (file.isDirectory()) {// 如果是目录,就递归
                    String childMPath = moved_path + File.separator + file.getName();
                    new File(childMPath).mkdir();
                    moveFile(file.getAbsolutePath(), childMPath);
                }
            } 
        }
    
        public static void copyFile(File resource, File target) throws Exception {
            FileInputStream inputStream = new FileInputStream(resource);
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            FileOutputStream outputStream = new FileOutputStream(target);
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
            byte[] bytes = new byte[1024 * 2];
            int len = 0;
            while ((len = inputStream.read(bytes)) != -1) {
                bufferedOutputStream.write(bytes, 0, len);
            }
            bufferedOutputStream.flush();
            bufferedInputStream.close();
            bufferedOutputStream.close();
            inputStream.close();
            outputStream.close();
            long end = System.currentTimeMillis();
        }
    

    相关文章

      网友评论

          本文标题:Java,复制文件夹及所有子文件,并排重

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