Copia de Diretórios

4 respostas
R

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 ?

4 Respostas

spycall

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

R

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());
	    		
	    }
	}
spycall
Esse método você pode usar para copiar os arquivos, mas você precisa passar os arquivos de origem e destino.
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());      
        }
     }
Vi no seu código que você tem os de origem, você precisa fazer um
new File("caminho destino")
e passar para o método.
R

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

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

Criado 6 de março de 2013
Ultima resposta 6 de mar. de 2013
Respostas 4
Participantes 2