A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

思路:列出当前文件夹下的所有内容如果是文件则复制到新的文件夹下,如果是文件夹,则继续列出文件列表,执行前面的操作,这里就要递归了
/**
         * 把oldPath目录下的文件和文件夹复制到newPath目录下
         * @param oldPath
         * @param newPath
         * @throws IOException
         */
        public static void copyDir(String oldPath,String newPath) throws IOException{
                //先判断路径是不是带分隔符,如果没有就加上
                if(!newPath.endsWith(File.separator)){
                        newPath = newPath+File.separator;
                }
                //将文件或文件夹封装成File对象
                File oldDir = new File(oldPath);
                File newDir;
               
                //当前文件夹下的列表
                File[] files = oldDir.listFiles();
                for(File f:files){
                        if(f.isDirectory()){
                                //如果是文件夹,递归
                                String dirName = f.getName();
                                newDir = new File(newPath+f.getName());
                                newDir.mkdirs();
                                copyDir(f.getAbsolutePath(),newDir.getAbsolutePath());
                        }
                        if(f.isFile()){
                                //如果是文件,则复制到新的文件夹下
                                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
                                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newPath+f.getName()));
                                byte[] buf = new byte[1024];
                                int len = 0;
                                while((len=bis.read(buf))!=-1){
                                        bos.write(buf, 0, len);
                                        bos.flush();
                                }
                                bos.close();
                                bis.close();
                        }
                }
        }

评分

参与人数 1技术分 +1 收起 理由
舍我其谁 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
赞一个,加油
回复 使用道具 举报

哈哈,哈哈
回复 使用道具 举报
不错!这道题不会的得练练!
回复 使用道具 举报
学习了,很好的参考
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马