前提:
现在我有一个文件夹(命名为[一级目录]),下面有若干个子文件夹(命名为[二级目录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());
}
这句递归,会把所有子目录文件都拷贝到你的目标文件夹。