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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魏志锋 初级黑马   /  2014-9-28 11:17  /  754 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,先贴源码。
package JiChu;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFileDir2 {

        public static void main(String[] args) throws Exception {
                //System.err.println(new File("D:\\新建文件\\xin").toString());
                copyFile(new File("D:\\新建文件"),new File("D:\\新建文件夹2"));
        }

        private static void copyFile(File filesrc, File filedest) throws IOException {
                // TODO Auto-generated method stub
                if(filesrc.isDirectory()){
                        filedest.mkdir();
                        File []temps = filesrc.listFiles();
                        for(File temp :temps){
                                if(temp.isDirectory()){
                                        filedest =new File(filedest+File.separator+temp.getName());
                                        System.out.println("目的文件是   "+filedest.toString()+"   源文件是  "+temp.toString());
                                        copyFile(temp,filedest);
                                }
                                /*else{
                                       
                                        copy(filedest, temp);
                                }*/
                                       
                        }
                }
                else
                        copy(filedest,filesrc);
        }

        private static void copy(File filedest, File temp)
                        throws FileNotFoundException, IOException {
                /*if(!(filedest.exists()))
                        filedest.createNewFile();*/
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(temp));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filedest));
               
                byte[] by = new byte[1024*50];
                int len;
                while((len=bis.read(by))!=-1){
                        bos.write(by, 0, len);
                        bos.flush();
                }
                bis.close();
                bos.close();
        }

}

0 个回复

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