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.