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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zwy1174 中级黑马   /  2016-9-10 22:44  /  640 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

复制的跟原来的的源文件夹不一样
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Scanner;
/*
* 1.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
*/
public class demo01 {
        static File file = new File(new Scanner(System.in).nextLine());
        static File file2 = new File(new Scanner(System.in).nextLine());
        public static void main(String[] args) throws Exception {
                function(file);
        }
        public static void function(File file) throws Exception{
                File newdir = new File(file2,file.getName());
                newdir.mkdirs();
                for (File f : file.listFiles()) {
                        if (f.isDirectory()) {
                                function(f);
                        }else{
                                FileInputStream fis = new FileInputStream(f);
                                FileOutputStream fos = new FileOutputStream(new File(newdir,f.getName()));
                                int len = 0;
                                byte[] by = new byte[1024];
                                while( (len = fis.read() ) != -1 ){
                                        fos.write(by,0,len);
                                }
                                fis.close();
                                //System.out.println("搞定");
                        }
                }
        }
}

2 个回复

倒序浏览
public static void main(String[] args) throws IOException {
                Scanner sc =new Scanner(System.in);
                System.out.println("请输入要拷贝的文件夹路径:");
                String line1 = sc.nextLine();
                System.out.println("请输入 接受文件夹的路径:");
                String line2 = sc.nextLine();
               
                File file1 =new File(line1);
                File file2=new File(line2);
                //复制文件夹的功能
                copyFolder(file1,file2);
        }

        private static void copyFolder(File file1, File file2) throws IOException {
                //判断File1是文件夹还是文件
                if(file1.isDirectory()){
                        //是文件,先在目的地创建文件夹
                        File newFolder =new File(file2,file1.getName());
                        newFolder.mkdir();
                       
                        //获取该File对象下的所有或者文件夹File对象
                        File[] fileArray =file1.listFiles();
                        for (File file : fileArray) {
                                copyFolder(file,newFolder);
                        }
                }else{
                        //文件
                        File file3 =new File(file2,file1.getName());
                        copyFile(file1,file3);
                }
        }

        private static void copyFile(File file1, File file3) throws IOException {
                BufferedInputStream bis =new BufferedInputStream(new FileInputStream(file1));
                BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(file3));
                byte[] a =new byte[1024];
                int b ;
                while((b=bis.read(a))!=-1){
                        bos.write(a, 0, b);
                }
                bis.close();
                bos.close();
        }
回复 使用道具 举报
啥问题?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马