Olá garela do forum…
Gostaria de saber como copiar todos os subdiretórios de uma pasta para outra.
Tenho um método que copia os arquivos de uma pasta origem para uma pasta destino,
mas ela só funciona se a pasta origem possir apenas arquivos, caso ela possua
outras subpastas dentro dela o metodo não funciona. Segue o código:
public static void copyAll(File origem, File destino)throws IOException {
FileChannel oriChannel = null;
FileChannel destChannel = null;
try {
if (!destino.exists())
destino.mkdir();
File[] listaDeArquivos = origem.listFiles();
for (File file : listaDeArquivos) {
file.setLastModified(origem.lastModified());
// Cria channel na origem
oriChannel = new FileInputStream(file.getPath()).getChannel();
// Cria channel no destino
System.out.println("Copiando arquivo: " + file.getName());
destChannel = new FileOutputStream(destino + "\\"
+ file.getName()).getChannel();
// Copia conteúdo da origem no destino
destChannel.transferFrom(oriChannel, 0, oriChannel.size());
// Fecha channels
oriChannel.close();
destChannel.close();
System.out.println("");
}
Runtime.getRuntime().exec("explorer " + destino.getAbsolutePath());
System.out.println("Sincronização concluída com sucesso!");
} catch (IOException e) {
String msg = e.getMessage();
Erro novoErro = new Erro(msg);
JOptionPane.showMessageDialog(null, "Ocorreu um erro durante a sincronização das pastas");
} finally {
if (oriChannel != null && oriChannel.isOpen()) {
oriChannel.close();
}
if (destChannel != null && destChannel.isOpen()) {
destChannel.close();
}
}
}
Como recriar no destino as subpastas da origem???
Agradeço desde já!!!