olá amigos !
gostaria de fazer o seguintue
é uma condição que eu não sei como proceder.
dentro de um diretorio possui nomes iguais + com final numerico
exemplo
nome1
nome2
nome3
o que acontece, eu queria encapsular determinados nomes usando uma condição for.
como posso fazer isso só pra criar a condição de leitura para depois encapsular.
Desde já muito obrigado!
Veja se eu entendi:
Você tem uma pasta com vários arquivos que estão nomeados, por exemplo, ARQUIVO001, ARQUIVO002, etc.
O nome do arquivo é composto por . Você precisa lê-los e fazer alguma coisa com eles…
Se for isso mesmo, pode ser resolvido assim:
package br.nom.luciano.lima.pasta;
import java.io.File;
import java.io.FilenameFilter;
/**
* BuscaArquivos classe para o exemplo que pesquisa os arquivos em uma pasta de
* acordo com o critério passado para o filtro
*
* @author lj.lima
*
*/
public class BuscaArquivos {
public static final String NOME_PADRAO = "ARQUIVO";
public static void main(String[] args) {
File pasta = new File("c:/pasta");
// Cria o filtro para os arquivos.
FilenameFilter filtro = new BuscaArquivos().new FiltroArquivo(
NOME_PADRAO);
// Lista os arquivos de acordo com o filtro.
File[] listaArquivos = pasta.listFiles(filtro);
for (int i = 0; i < listaArquivos.length; i++) {
// Aqui entraria seu código para manipular os arquivos.
System.out.println("Faz algo com o arquivo "
+ listaArquivos[i].getAbsoluteFile());
}
}
/**
* FiltroArquivo InnerClass para o exemplo que implementa um FilenameFilter
* para criar o filtro de pasta
*
* @author lj.lima
*
*/
public class FiltroArquivo implements FilenameFilter {
private String criterio;
public FiltroArquivo(String filtro) {
this.criterio = filtro;
}
@Override
public boolean accept(File pasta, String nome) {
/*
* Aqui você coloca o critério de filtro. No exemplo, irá filtrar
* pelo começo do nome, de acordo com o que for passado no
* construtor. Poderia ser usado outro retorno ou até RegEx.
*/
return (nome.startsWith(criterio));
}
}
}