当前位置: 代码迷 >> J2EE >> 多级目录,文件Copy有关问题
  详细解决方案

多级目录,文件Copy有关问题

热度:359   发布时间:2016-04-22 03:30:21.0
多级目录,文件Copy问题
前提:
  现在我有一个文件夹(命名为[一级目录]),下面有若干个子文件夹(命名为[二级目录1···N]),在每一个文件夹中都存在同名字文件夹(命名为[同名文件夹])

问题:
  我想把所有[同名文件夹]下的所有文件,Copy到某个目录(比如C:\My Document)下,怎样做。

  1、Java实现代码,有兴趣的可以考虑下

  2、Dos命令能不能实现,如何写命令。

  3、Bat批处理是否能实现,如何写代码。

注意:
  中间存在二级目录,并且名称不相同,Dos下能否使用通配符之类的实现。

------解决方案--------------------
Java code
    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());
}
这句递归,会把所有子目录文件都拷贝到你的目标文件夹。
  相关解决方案