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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/**
         * 需求:3,从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
         *
         * 把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
         * 分析:
         * 1,在目标文件夹中创建原文件夹
         * 2,获取原文件夹中所有的文件和文件夹,存储在File数组中
         * 3,遍历数组
         * 4,如果是文件就用io流读写
         * 5,如果是文件夹就递归调用
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                File src = Test1.getDir();
                File dest = Test1.getDir();
                if(src.equals(dest)) {
                        System.out.println("目标文件夹是源文件夹的子文件夹");
                }else {
                        copy(src,dest);
                }
        }
        /*
         * 把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
         * 1,返回值类型void
         * 2,参数列表File src,File dest
         */
        public static void copy(File src, File dest) throws IOException {
                //1,在目标文件夹中创建原文件夹
                File newDir = new File(dest, src.getName());
                newDir.mkdir();
                //2,获取原文件夹中所有的文件和文件夹,存储在File数组中
                File[] subFiles = src.listFiles();
                //3,遍历数组
                for (File subFile : subFiles) {
                        //4,如果是文件就用io流读写
                        if(subFile.isFile()) {
                                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
                                BufferedOutputStream bos =
                                                new BufferedOutputStream(new FileOutputStream(new File(newDir,subFile.getName())));
                               
                                int b;
                                while((b = bis.read()) != -1) {
                                        bos.write(b);
                                }
                               
                                bis.close();
                                bos.close();
                        //5,如果是文件夹就递归调用
                        }else {
                                copy(subFile,newDir);
                        }
                }
        }
以上代码在运行时出现java.io.FileNotFoundException: F:\Pictures111\Camera Roll (拒绝访问。)是什么意思啊?我的文件夹没有设置其他权限的

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马