递归么void deepCopy(File src,File dest){
   if(src.isFile()){
      copy src to dest via Stream...
   }else{
     dest.mkdirs();
     for(File f:src.listFiles()){
        deepCopy(f,new File(dest,f.getName());
     }
   }
}大致写了下

解决方案 »

  1.   

     public boolean copyFile(String fileSour, String fileAim)
        {
            try
            // must try and catch,otherwide will compile error
            {
                // instance the File as file_in and file_out
                File file_in = new File(fileSour);
                File file_out = new File(fileAim);
                FileInputStream in = new FileInputStream(file_in);
                FileOutputStream out = new FileOutputStream(file_out);
                byte[] bytes = new byte[1024];
                int c;
                while ((c = in.read(bytes)) != -1)
                    out.write(bytes, 0, c);
                in.close();
                out.close();
                return (true); // if success then return true
            }        catch (IOException e)
            {
                log.error("IO Exception: " + e);
                return (false); // if fail then return false
            }
        }这个搞定 !!!!!
      

  2.   

    2楼,你的方法只是将A文件的内容copy到B文件我的意思是将文件本身copy过去。1楼的简要了点,还在研究中,希望能详细一点,谢谢。
      

  3.   

    这是我自己写的,本身是一个action,红字的那行我已经得到了这个file,现在的问题是怎么把它传到目标文件夹中去,照我这样写会报错,请各位指教,谢谢。
    public ActionForward fileUpload(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) 
    throws FileNotFoundException, IOException {
            
                       String filepath = "E:/111";
       String toPath = "E:/222";
       FileInputStream in = null; 
               FileOutputStream out = null;
        
                    File filedoc = new File(filepath);

    if (!filedoc.isDirectory()) {
    System.out.println(filepath + " not exists");
    } else {
    File filelist[] = filedoc.listFiles();
    for (int i = 0; i < filelist.length; i++) {
    File file = filelist[i];

                            in = file.getInputStream();
    out = new FileOutputStream(toPath);

    int read = 0; 
                byte[] buffer = new byte[8192]; 
        
                while ((read = in.read(buffer, 0, 8192)) != -1) { 
                    out.write(buffer, 0, read); 
                } 
                out.close(); 
                in.close();
    }
    }

    return mapping.findForward("fileUpload");
    }