Copia de Diretórios

Bom, o usuário define um diretório origem e um diretório destino, como isso :

C:\minhapasta (origem)
C:\minhapasta_backup (destino).

A minhapasta tem muitos arquivos dentro com subdiretórios e mais arquivos dentro desses subdiretórios, e o minhapasta_backup está vazia.

O que o sistema deve fazer é copiar tudo que dentro dentro de minhapasta para minhapasta_backup com seus arquivos e subdiretórios. Como fazer isso ?

Posta aqui o que você já fez, e diga em qual parte está sua dúvida, se não fica difícil te ajudar.

Vamos lá,

eu capturo a origem e o destino (ambas pastas) que o usuário deseja e gravo em 2 variáveis. Depois eu uso um método recursivo para varrer a pasta de Origem com todos seus subdiretórios, porém eu quero ir copiando e criando os arquivos para o destino.

private void getFiles(File[] arquivos) throws IOException{
	    for (int i=0;i<arquivos.length;i++){
	    	
	    	if (arquivos[i].isDirectory())
	    		getFiles(arquivos[i].listFiles());
	    	else
	    		System.out.println(arquivos[i].isDirectory());
	    		
	    }
	}

Esse método você pode usar para copiar os arquivos, mas você precisa passar os arquivos de origem e destino.

[code]private void copy( File f1, File f2,boolean overwrite) {
try {

          InputStream in = new FileInputStream(f1);              
          OutputStream out = new FileOutputStream(f2,overwrite);             

          byte[] buf = new byte[1024];
          int len;
          
          while ((len = in.read(buf)) > 0){
            out.write(buf, 0, len);
          }
                        
          in.close();
          out.close();
    }catch(FileNotFoundException ex){
        System.out.println(ex.getMessage() + " na pasta especificada.");
    }catch(IOException e){
        System.out.println(e.getMessage());      
    }
 }[/code]

Vi no seu código que você tem os de origem, você precisa fazer umnew File("caminho destino") e passar para o método.

Fiz o teste, passei a origem e o destino e deu a mensagem:

D:\testesistema (Acesso negado) na pasta especificada.