public static boolean copyFolder(String srcdir,String destdir)
{    
    if(srcdir==null || srcdir.length()==0)
      return false;
    File srcf = new File(srcdir);
    File destf = new File(destdir);    if(srcf.isDirectory() || destf.isDirectory()) return false;
    if(!srcf.exists()) return false;
    File destD = new File(destf.getParent());
    if(!destD.exists())
      if(!destD.mkdirs())
        return false;
    int read = 1;
    try
    {
      FileInputStream fis = new FileInputStream(srcdir);
      FileOutputStream fos = new FileOutputStream(destdir);
      while(read > 0)
      {
        byte[] b = new byte[1024];
        read = fis.read(b,0,1024);
        if(read > 0)
          fos.write(b, 0, read);
      }
    }
    catch(IOException ioe)
    {
      System.err.println(ioe.toString());
      return false;
    }
    return true;
  }

解决方案 »

  1.   

    好像不太好使,兄弟,我试着Test.copyFolder("c:\\aaa","c:\\bbb")去做,但是结果总是FALSE,并且也没有把C盘根目录下的aaa拷到bbb中(在这之前我先建了aaa和bbb在C盘根目录下),不知为何???????????谢了.
      

  2.   


            byte[] b = new byte[1024];
            read = fis.read(b,0,1024);
            if(read > 0)
              fos.write(b, 0, read);
      

  3.   

    import java.io.*;
    public class testCopy
    {
    public static boolean copyFolder(String srcdir,String destdir)
    {    
    File srcf = new File(srcdir);
    File destf = new File(destdir);
    if(destf.exists()){
    System.out.println("Destination file is already exist!");
    return false;
    }
    if(srcf.exists()){
    if(srcf.isDirectory()){
    destf.mkdirs();
    String[] files=srcf.list();
    for(int i=0;i<files.length;i++){
    if(!(files[i].equals(".")||files[i].equals("..")))
    copyFolder(srcdir+"\\"+files[i],destdir+"\\"+files[i]);
    }
    }else{
    try{
      FileInputStream fis = new FileInputStream(srcdir);
      FileOutputStream fos = new FileOutputStream(destdir);
      byte[] b = new byte[1024];
      int read=1;
      while(read > 0)
      {
    read = fis.read(b,0,1024);
    if(read > 0)
      fos.write(b, 0, read);
      }
    }
    catch(IOException ioe){
      ioe.printStackTrace();
      return false;
    }
    }
    }
    return true;
    }
    public static void main(String args[]){
    if(args.length!=2){
    System.out.println("Please enter the source folder name and destination name!");
    }else
    copyFolder(args[0],args[1]);
    }
    }