gente… como eu posso fazer um sistema em que o programa recebe um nome numa String… então ele busca arquivos em certas pastas com o nome que está na String.
tipo…
private String search = "fulano1";
este “fulano1” é o nome de um arquivo numa certa pasta.
preciso abrii-lo para pegar certos dados nele.
como posso usar uma busca pra achar isso!? seria assim:
if(search.isExist()){
//codigo para achar o arquivo em certa pasta e subpasta.
}
Consulte a classe java.io.File, que representa nomes de arquivos e diretórios.
(Atenção: java.io.File não serve para ler ou escrever arquivos - isso é reservado para as classes java.io.FileInputStream, FileOutputStream, RandomAccessFile, FileReader ou FileWriter.
java.io.File serve para verificar se o arquivo existe, listar diretórios, remover arquivos etc. )
ivo costa,
vlw pelo codigo…
no meu caso… eu não preciso procurar por subpasta… mas sim so pelo nome do arquivo.
o diretório ja fixo. falei daquela maneira para ganhar um pouco mais de conhecimento com o codigo que talvez possam me enviar, que neste caso foi o seu. 8)
so fiquei meio confuso em entender a “ArrayList lista” ali pro final…
A lista* irá me dizer aonde o arquivo está!? :?:
porque o que necessito é so achar o arquivo com tal nome e abri-lo.
É que se tu tiver vários arquivos com nomes parecidos tipo imagem1, imagem2, … e tu procurar por “imagem”, ele vai trazer no arrayList o caminho de todos os arquivos que contenham “imagem” no nome do arquivo.
tipo que não terá procura por um nome que não existe ou por um nome que possa ter 2 parecidos.
a base da procura toma como referência um txt com a lista de nomes.
na lista.txt tem o nome exato de cada txt na subpasta. Então não há como haver 2 exemplos iguais.
mas entendo o que vc quer dizer e o que vc me colocou. Mas eu faço revisão com +2 pessoas, então não há problema com erros. rsrs.
Método que busca por nomes em arquivos e pastas, tbm busca por fragmentos no nome do arquivo:
[code]
public ArrayList buscarArquivoPorNome(String palavra, String caminhoInicial){
ArrayList lista = new ArrayList();
try{
File arquivo = new File(caminhoInicial);
lista = buscar(arquivo, palavra, lista);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Caminho Inválido");
}
return lista;
}
public ArrayList buscar(File arquivo, String palavra, ArrayList lista) {
if (arquivo.isDirectory()) {
File[] subPastas = arquivo.listFiles();
for (int i = 0; i < subPastas.length; i++) {
lista = buscar(subPastas[i], palavra, lista);
if (arquivo.getName().equalsIgnoreCase(palavra)) lista.add(arquivo.getAbsolutePath());
else if (arquivo.getName().indexOf(palavra) > -1) lista.add(arquivo.getAbsolutePath());
}
}
else if (arquivo.getName().equalsIgnoreCase(palavra)) lista.add(arquivo.getAbsolutePath());
else if (arquivo.getName().indexOf(palavra) > -1) lista.add(arquivo.getAbsolutePath());
return lista;
}
[/code][/quote]
Cara, acho que tu pode me ajudar, preciso listar pastas e suas subpastas de um local já mapeado, como faço isso. Usso esse código para listar as pastas, agora preciso listar suas subpastas:
public List<Diretorio> listaPasta() {
List<Diretorio> listas = new ArrayList<Diretorio>();
File file = new File(unidade);
if (file.isDirectory()) {
File[] afile = file.listFiles();
for (File f : afile) {
if (!f.isHidden()) {
if (f.isDirectory()) {
Diretorio diretorio = new Diretorio();
diretorio.setPasta(f.getName());
listas.add(diretorio);
}
}
}
}
return listas;
}