eu preciso realiazar uma busca em todo o computador, buscando um arquivo, para saber o caminho que cada um esta e saber qual é o mais novo deles.
pesquisei muito sobre os codigos para buscar arquivos e o maximo que consegui foi realizar uma busca com o tempo de 1 min e 40 sec.
Tentando outros caminhos, para reduzir esse tempo, pensei em um arquivo .bat com o codigo “DIR *.AAA /S > C:\CPT8001\ATUALIZA\ListAAA.txt” ele me gera um arquivo contendo todos os arquivos que quero em 10 sec.
Porém, depois de gerar o arquivo, preciso buscar qual é o mais novo dentro dele.
Minha dificuldade, é que o codigo não espera o termino do .bat, para acessa-lo e verificar o mais novo deles
Tem alguma forma de saber quando o .bat foi encerrado, para ai sim, dar sequencia no codigo???
Leia este programa e o entenda. Neste caso, escrevi um programa que acha a DLL mais nova do diretório c:\program files\java\jre6.
importjava.util.*;importjava.io.*;importjava.util.regex.*;classListarArquivosRecursivamente{privatevoidlistar(SortedSet<File>files,FiledirOrFile,Patternpat){if(dirOrFile.isFile()){if(pat.matcher(dirOrFile.getName()).matches()){files.add(dirOrFile);}}elseif(dirOrFile.isDirectory()){for(Filef:dirOrFile.listFiles()){listar(files,f,pat);}}}publicSortedSet<File>listarMaisNovos(Filedir,Patternpat){SortedSet<File>files=newTreeSet<File>(newComparator<File>(){publicintcompare(Filef1,Filef2){// Comparar por data (decrescente), depois por nome (crescente)intret=Long.valueOf(f1.lastModified()).compareTo(Long.valueOf(f2.lastModified()));if(ret!=0)return-ret;// -ret inverte o sentido da comparaçãoreturnf1.compareTo(f2);// compara por path}});listar(files,dir,pat);returnfiles;}publicstaticvoidmain(String[]args){ListarArquivosRecursivamentelar=newListarArquivosRecursivamente();SortedSet<File>arquivos=lar.listarMaisNovos(newFile("C:\Program Files\Java\jre6"),Pattern.compile(".*\.dll",Pattern.CASE_INSENSITIVE));System.out.println(arquivos);System.out.println("O arquivo mais novo: "+arquivos.first());System.out.println("A data: "+newDate(arquivos.first().lastModified()));}}