Mostrar imagem pesquisada na tela se ela existir

pode pular lá pra baixo que já tenho um “código” que dispensa esse post inicial

public class Filter { public File[] finder(String dirName) { File dir = new File(dirName); return dir.listFiles(new FilenameFilter() { public boolean accept(File dir, String filename) { return filename.endsWith(".txt"); } }); } }

como faço pra buscar além de .txt, outras extensões também?

e na busca procurar pelo texto de uma variavel, sei que seria algo como "filename.startsWith(VARIAVEL) &&… endsWith…

to com esse código ai, mas não entendi como chamo a função ou onde digito o endereço pra fazer a busca, adicionei isso antes do public File[]

		String dirName = "C:\\Documents and Settings\\user\\Meus documentos\\Minhas imagens";

(to utilizando eclipse e rodando nele mesmo, aparece a tela, mas não sei como “linkar” o Filter ao botão, pois o Filter não tem um function :|)

Digamos que você queira achar os arquivos terminados por txt ou doc. O código seria:

                return filename.endsWith(".txt") || filename.endsWith (".doc"); }  

Faça suas modificações de acordo com suas necessidades.

Na prática, você precisa ver que alguns arquivos não terminam com “.txt” (minúscula) mas “.TXT” ou alguma variação disso. Por isso é aconselhável você passar o nome para minúsculas ou maiúsculas antes de usar endsWith.

[quote=entanglement]Digamos que você queira achar os arquivos terminados por txt ou doc. O código seria:

                return filename.endsWith(".txt") || filename.endsWith (".doc"); }  

Faça suas modificações de acordo com suas necessidades.

Na prática, você precisa ver que alguns arquivos não terminam com “.txt” (minúscula) mas “.TXT” ou alguma variação disso. Por isso é aconselhável você passar o nome para minúsculas ou maiúsculas antes de usar endsWith.
[/quote]

valeu a resposta, encontrei esse código:

private void mostrarTxt() { String diretorio = "C:\\Documents and Settings\\user\\Meus documentos\\Minhas imagens"; File folder = new File(diretorio); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].isFile()) { String files = listOfFiles[i].getName(); if (files.endsWith(".txt")) { System.out.println(listOfFiles[i].getName()); } } else { System.out.println("Tem arquivo não champs"); }

fiz o teste, ele só não funciona o ELSE, alterei o .txt pra .txat, mas ele simplesmente não retorna nada no console…

esse return, seria o equivalente ao print? como nesse return faço dar um print na tela??!?!

com esse código já da pra eu fazer algumas modificações, muito obrigado viu!!!

sei que talvez o código não está nas mais perfeitas condições pra ser limpo e rápido, mas servirá para o que planejo, que é pegar a imagem com o número digitado (o nome do arquivo é número)… retornar se existe, se existir, dar um display da IMAGEM, e ia utilizar botão próximo e anterior pra percorrer o array da imagem e ver se tem cópias (.001,.002,.003…etc), mas por enquanto to travado aqui ->

[code]
public void mostrarMatricula() {
String diretorio = “C:\Documents and Settings\cartorio\Meus documentos\Minhas imagens”;
String matricula = txtMatricula.getText();
int confere = Integer.parseInt(matricula);
if(confere < 10 && confere >= 1) {
matricula = “00000” + confere;
}
if(confere < 100 && confere >= 10) {
matricula = “0000” + confere;
}
if(confere < 1000 && confere >= 100) {
matricula = “000” + confere;
}
if(confere < 10000 && confere >= 1000) {
matricula = “00” + confere;
}
if(confere < 100000 && confere >= 10000) {
matricula = “0” + confere;
}

    File folder = new File(diretorio);
    File[] listOfFiles = folder.listFiles();
    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            String files [] = listOfFiles[i].getName().split("\\.");
            if(files[0].equals(matricula)) {
            	System.out.println(listOfFiles[i].getName());

// System.out.println(files[0]);
}

           } else {
              	System.out.println("Matricula não encontrada");
                //  	System.out.println(files[0]);
                  	break;
        }
    }
}

}[/code]

tenho na pasta que ele faz a busca:
000001.001
000103.001
000103.002
000103.003

quando digito 1, ele retorna certinho o arquivo, e quando digito 103 ele retorna certinho o .001, .002, .003

porém, quando digito algum número que não tem, ele não retorna o ELSE, pq???

e outra coisa, como faria pra ele mostrar o arquivo de imagem NA TELA?

já sei que eu usaria o primeiro somente pra mostrar a primeira página, e usaria um anterior/proximo pra percorrer o array do listOfFiles[x] de acordo com a página, já que neste array ta o endereço completo da imagem!!!

agradeço se alguem puder me ajudar…

import java.io.File;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String diretorio = "C:\\Documents and Settings\\cartorio\\Meus documentos\\Minhas imagens";
		String matricula = txtMatricula.getText();
		int confere = Integer.parseInt(matricula);
		if (confere < 10 && confere >= 1) {
			matricula = "00000" + confere;
		}
		if (confere < 100 && confere >= 10) {
			matricula = "0000" + confere;
		}
		if (confere < 1000 && confere >= 100) {
			matricula = "000" + confere;
		}
		if (confere < 10000 && confere >= 1000) {
			matricula = "00" + confere;
		}
		if (confere < 100000 && confere >= 10000) {
			matricula = "0" + confere;
		}

		File folder = new File(diretorio);
		File[] listOfFiles = folder.listFiles();
		for (int i = 0; i < listOfFiles.length; i++) {
			if (listOfFiles[i].isFile()) {
				String files[] = listOfFiles[i].getName().split("\\.");
				if (files[0].equals(matricula)) {
					System.out.println(listOfFiles[i].getName());
					// System.out.println(files[0]);
				} else {
					System.out.println("Matricula não encontrada");
					// System.out.println(files[0]);
					break;
				}

			}
		}
	}

}

Tome cuidado com a posição onde o else se encontra, pois ele estava ligado ao primeiro if dentro do for, por isso é bom identar o código, se usar o eclipse ctrl + shift + f, no netbeans e no intellij eu não sei qual é o comando. Agora quanto a mostrar a imagem, creio que vc terá que aprender sobre swing, ou JavaFx, sendo este último um candidato a subistituir o primeiro que eu citei, segundo algumas coisas que li no guj, como não trabalho com Java pra Desktop não posso te ajudar nessa =/

eu já tinha descido o else mais um { que nem vc fez, porém quando ele está mais pra baixo,

digito 1 (ele retorna que existe, mas também retorna a mensagem de que não existe)

se eu digito 103, diz que não existe, mas sim, existe o arquivo 000123

nesse código, ele lista sempre os que existem, mas os que não existem ele não diz que não existe, simplesmente não ocorre nada ->

[code] public void mostrarMatricula() {
String diretorio = “C:\Documents and Settings\cartorio\Meus documentos\Minhas imagens”;
String matricula = txtMatricula.getText();
int confere = Integer.parseInt(matricula);
if (confere < 10 && confere >= 1) {
matricula = “00000” + confere;
}
if (confere < 100 && confere >= 10) {
matricula = “0000” + confere;
}
if (confere < 1000 && confere >= 100) {
matricula = “000” + confere;
}
if (confere < 10000 && confere >= 1000) {
matricula = “00” + confere;
}
if (confere < 100000 && confere >= 10000) {
matricula = “0” + confere;
}

	File folder = new File(diretorio);
	File[] listOfFiles = folder.listFiles();
	for (int i = 0; i < listOfFiles.length; i++) {	
		String files[] = listOfFiles[i].getName().split("\\.");
		if (listOfFiles[i].isFile()) {
			// String files[] = listOfFiles[i].getName().split("\\.");
			if (files[0].equals(matricula)) {
				System.out.println(listOfFiles[i].getName());
				// System.out.println(files[0]);
			} 

		} else {
			System.out.println("non ecziste");

		}
	}
}

}[/code]