Problema a mover arquivo usando o NIO

2 respostas
V

Olá. Eu comecei a estudar a classe NIO e peguei um código que move todos os arquivos de uma pasta com uma determinada extensão. Não aparece nenhuma mensagem de erro, mas tambem ele não move nada. Será que alguem poderia me ajudar?

public List<Path> buscarArquivosPorNome(Path caminho, String extensao) throws IOException {  
        ListarPorExtensao visitor = new ListarPorExtensao(extensao);  
        Files.walkFileTree(caminho, visitor);  
        return visitor.getLista();  
    }  
      
    public void copiarArquivo(Path caminho, String extensao, Path destino) throws IOException {  
        List<Path> lista = buscarArquivosPorNome(caminho, extensao);  
        for (Path file : lista) {  
            Path relativo = caminho.relativize(file);  
            Path arquivo = destino.resolve(relativo);  
            Files.createDirectories(arquivo.getParent());  
            Files.copy(file, arquivo);  
        }  
    }  
      
    private static class ListarPorExtensao extends SimpleFileVisitor<Path> {  
          
        private final String extensao;  
        private final List<Path> lista = new ArrayList<Path>();
          
        public ListarPorExtensao(String ext) {  
            extensao = ext;  
        }  
  
        @Override  
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {  
            FileVisitResult result = super.visitFile(file, attrs);   
            if (result == FileVisitResult.CONTINUE) {  
                if (attrs.isRegularFile() && file.toString().endsWith(extensao)) {  
                    lista.add(file);  
                }  
            }  
            return result;  
        }  
          
        public List<Path> getLista() {  
            return lista;  
        }
Não sei se isso pode ter causado o problema, mas eu usei um método que achei para converter String em Path.
public static Path get(String first) 
      {
        return FileSystems.getDefault().getPath(first);
       }

2 Respostas

E

Só vi operações de cópia aqui nesse seu código. Tem certeza que postou o código correto?

V

Bom esse código não é meu. Então eu não sei ao certo.

Criado 30 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 2
Participantes 2