Tem um código que faz a busca por diretorios e posso delimitar o nivel da arvore que pode ser pesquisado. Quero poder trazer arquivo(s) que esteja(m) no diretorio informado com a extensão digitada pelo usuario.
Meu código traz todos os arquivos. Como faço para trazer só os arquivos com uma determinada extesão nesse código:
package controle;
import java.io.*;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import org.apache.commons.io.FilenameUtils;
import java.util.List;
public class BuscaRecursiva2 {
private int nivel = 0;
void pesquisaDiretorios() throws Exception {
try {
@SuppressWarnings("resource")
Scanner teclado=new Scanner(System.in);
teclado.useLocale(Locale.US);
//variaveis com caminhos a serem pesquisados
System.out.println("Diretório que será analisado: " );
String caminhoDiretorio=teclado.nextLine();
System.out.print("\n Extensoes de arquivos:");
String mascara=teclado.next();
//System.out.println("\n Extensoes não desejadas:");
String negoMascara=null;
System.out.println("\n Limite do nivel de busca: " );
nivel = teclado.nextInt();
File diretorio = new File(caminhoDiretorio);
//verifica a existencia do diretorio
if (!diretorio.exists()) {
throw new InputMismatchException("Não existe!");
}
pesquisaMascara(diretorio.getPath(), mascara,negoMascara);
}
catch (InputMismatchException ex) {
ex.printStackTrace();
}
}
public void pesquisaMascara(String diretorio, String mascara, String negoMascara)
throws Exception {
if (nivel >= 0) {
File fDir = new File(diretorio);
if (fDir.isDirectory()){
File[] listaFiles = fDir.listFiles();
for (File file : listaFiles ) {
if(file!=null){
List<File> f=search(file,"txt;pdf;txt;docx;xls;java;zip;jpg;rar;sh;js");
String mascaras[]= mascara.split(";");
System.out.println("[ANALISANDO] " +file);
}
else{
List<File> f=search(file,"txt*;pdf*;txt*;docx*;bat*;java*;zip*;jpg*;rar*;sh*");
String nego[]= negoMascara.split(";");
}
if (file.isDirectory()) {
if(nivel > 0){
nivel--;
// se e diretorio, entra no diretorio
pesquisaMascara(file.getPath(),mascara,negoMascara);
}
} else {
if (FilenameUtils.wildcardMatchOnSystem(file.getName(),mascara,negoMascara)){
System.out.println("Encontrei o arquivo:" + file.getAbsolutePath());
}
}
}
}
}
}
private List<File> search(File file, String string) {
// TODO Auto-generated method stub
return null;
}
public String[] negos(String nego) {
// TODO Auto-generated method stub
return null;
}
public String[] masc(String mascaras) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) throws Exception {
new BuscaRecursiva2().pesquisaDiretorios();
}
}
Alguém poderia me ajudar?? Creio que o problema esteja na sintaxe.