加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java复制一个目录下所有的文件夹到另一个目录下

发布时间:2020-12-14 23:53:15 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.*; import java.util.*; private static File[] copyfoldersList = new File("C:WindowsSystem32").listFiles(); for (int k = 0;

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

      import java.io.*;
        import java.util.*;
        private static File[] copyfoldersList = new File("C:WindowsSystem32").listFiles();
        for (int k = 0; k < copyfoldersList.length; k++) {
            if (copyfoldersList[k].isDirectory()) {
                LinkedList<String> copysourcepath = new LinkedList<String>(
                        Arrays.asList(copyfoldersList[k].getAbsolutePath()));
                LinkedList<String> copytargetpath = new LinkedList<String>(
                        Arrays.asList("D:"+ File.separator+ copyfoldersList[k].getAbsolutePath().substring(copyfoldersList[k].getAbsolutePath().lastIndexOf(File.separator))));
                while (copysourcepath.size() > 0) {
                    (new File(copytargetpath.peek())).mkdirs();
                    File folders = new File(copysourcepath.peek());
                    String[] file = folders.list();
                    File temp = null;
                    for (int i = 0; i < file.length; i++) {
                        if (copysourcepath.peek().endsWith(File.separator))
                            temp = new File(copysourcepath.peek(),file[i]);
                        else
                            temp = new File(copysourcepath.peek(),file[i]);
                        FileInputStream input = null;
                        FileOutputStream output = null;
                        if (temp.isFile()) {
                            try {
                                input = new FileInputStream(temp);
                                output = new FileOutputStream(new File(copytargetpath.peek(),temp.getName().toString()));
                                long filelength=input.length();
                                long buffsize=filelength<10485760L?filelength:10485760L;
                                byte[] b = new byte[buffsize];
                                int len;
                                while ((len = input.read(b)) != -1)
                                    output.write(b,len);
                                output.flush();
                            } catch (IOException e) {
                                System.err.println("复制单个文件操作出错");
                            } finally {
                                try {
                                    output.close();
                                    input.close();
                                } catch (IOException e) {
                                }
                            }
                        } else if (temp.isDirectory()) {
                            for (File f : temp.listFiles()) {
                                if (f.isDirectory()) {
                                    copysourcepath.add(f.getPath());
                                    copytargetpath.add(copytargetpath.peek()
                                            + File.separator + f.getName());
                                } else if (f.isFile()) {
                                    new File(copytargetpath.peek()+ File.separator+ temp.getName()).mkdirs();
                                    FileInputStream input2 = null;
                                    FileOutputStream output2 = null;
                                    try {
                                        input2 = new FileInputStream(f);
                                        output2 = new FileOutputStream(copytargetpath.peek()+ File.separator+ temp.getName()+ File.separator+ f.getName());
                                        long filelength=input2.length();
                                        long buffsize=filelength<10485760L?filelength:10485760L;
                                        byte[] b = new byte[buffsize];
                                        int len;
                                        while ((len = input2.read(b)) != -1)
                                            output2.write(b,len);
                                        output2.flush();
                                    } catch (IOException e) {
                                        System.err.println("复制单个文件操作出错");
                                    } finally {
                                        try {
                                            output2.close();
                                            input2.close();
                                        } catch (IOException e) {
                                        }
                                    }
                                }
                            }
                        }
                    }
                    copysourcepath.removeFirst();
                    copytargetpath.removeFirst();
                }
            }
        }

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读