[quote=magalli]
Toda vez que a pessoa coloca a digital ele vai carrega o diretorio inteiro todas digitais para achar de quem é ai ele encontra,
ai passa outra pessoa a digital ele faz tudo isso pq tem que ir lá no C:\digitais e carregar tudo dinovo e tá demorando muito esse processamento preciso melhora isso…
tá com 150 cadastros tá demorando em torno de 5s, magina a hora que atingir umas 2000 digitais…[/quote]
Agora está ficando mais claro, mas a pasta é uma só pra todas as pessoas correto?
Se você já carregar isso assim que abrir o sistema, poderá deixar um objeto carregado com o Map<> das imagens naquele formato que te mostrei, isso é uma etapa.
A segunda etapa você só inicia quando a pessoa passar a digital, daí você chama esse objeto Map e verifica pelo método containsKey(nomeArquivo) que retorna um booleano se já existir no mapa, ou falso caso contrário, assim você não precisa percorrer os arquivos e comparar, etc e tal.
Mas o processo que você fez é isso mesmo, só precisa separar as coisas.
Agora pra se criar esse objeto Map que ficará vivo no sistema, precisa de um método public que o retorne para comparações posteriores:
public class Principal {
public static Map<String, Byte[]> getImagensCarregadas() {
return imagens; // este cara também tem que ser static
}
}
Editei o post para informar que tanto o método quanto o objeto com o Map podem/precisam ser static já que será único para todo o sistema e na hora de comparar faça:
Map<String, Byte[]> imagens = Principal.getImagensCarregadas();
if (imagens.containsKey(nomeArquivo))
// true
else
// false
E melhor que esse objeto estático é um objeto no padrão Singleton, interessante pesquisar a respeito.