Senhores, boa tarde.
Tenho um diretório com 15000 mil arquivos, consigo criar uma classe que pegue um determinado arquivo e mova para outro diretório? Já fiz método de busca, só que no entanto não consigo mover o resultado da pesquisa para o diretório determinado, poderiam me ajudar?.
diego12
Janeiro 17, 2018, 10:01am
#2
É muito fácil mover arquivos usando as classes Files
e Paths
Path arquivo = Paths.get("arquivo.pdf");
Path destino = Paths.get("arquivos", "meuspdfs");// equivalente a Paths.get("arquivos/meuspdfs")
Files.move(arquivo, destino);
https://docs.oracle.com/javase/tutorial/essential/io/move.html
https://docs.oracle.com/javase/7/docs/api/java/nio/file/Paths.html
diego12:
Paths.get
Diego, bom dia.
Obrigado. pela resposta!
No caso eu precisaria pega o resultado da busca e não passar o arquivo como parâmetro.
segue a minha busca.
public BuscaArquivo(){
File diretorio = new File("C:/Documentos");
File arquivo;
System.out.println(diretorio);
// for(int i = 0; i < arquivo.length; i++){
// System.out.println(arquivo[i]);
//
// }
File[] listFiles = diretorio.listFiles(new FileFilter(){
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(arm);
}
});
for(File f : listFiles){
System.out.println(f.getName());
// arquivo = f.getParentFile();
// System.out.println(arquivo);
}
}
public static void main(String[] args) {
new BuscaArquivo();
}
}
diego12
Janeiro 17, 2018, 12:17pm
#4
Não muda muito, é só converter cada file
da lista para path
e usar a classe Files
para mover
Path destino = Paths.get("arquivos", "meuspdfs");// equivalente a Paths.get("arquivos/meuspdfs")
for(File f : listFiles){
Path arquivo = f.toPath();
Files.move(arquivo, destino);
}
diego12:
destino
Vou testar aqui Diego! Obrigado.