日期:2014-05-20 浏览次数:21044 次
    public static  void copy(File dir_src,String  dir_des){
        
        for(int i=0;i<dir_src.listFiles().length;i++){
            File f=dir_src.listFiles()[i];
            if(f.isDirectory()){
                copy(f,dir_des+"/"+f.getName());
            }else{
                try {
                    File dir=new File(dir_des);
                    if(!dir.exists()){
                        dir.mkdirs(); 
                    }
                    
                    FileChannel in=new FileInputStream(f).getChannel();
                    File f_des=new File(dir_des+"/"+f.getName());
                    FileChannel out=new FileOutputStream(f_des).getChannel();
                    System.out.print("copy "+f.getAbsolutePath()+" to " +f_des.getAbsolutePath()+"...");
                    in.transferTo(0, in.size(), out);
                    in.close();
                    out.close();
                    System.out.println("success");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
------解决方案--------------------
LS的估计就可了,文件夹名字的规则你可以自己来定。
通过 if(f.isDirectory()){
               copy(f,dir_des+"/"+f.getName());
           }
这句递归,会把所有子目录文件都拷贝到你的目标文件夹。