Ciao, ne avrete parlato un sacco di volte, ma non ho trovato un esempio che possa essermi di aiuto quindi provo ad esporre il mio piccolo problema. Sono sincero, fino ad ora ho utilizzato pochissimo le espressioni regolari, e anche in quelle circostanze non le ho mai utilizzate per la ricerca di file ma solamente per splittare.
Adesso ciò che mi serve è trovare un determinato file “senza conoscerne il nome” per poterlo poi cancellare, dal momento che diventa obsoleto.
Se per esempio il percorso è questo «src/risorse/» e volessi utilizzare un metodo simile:
public static boolean fileExist(String nome){
File file = new File("src/risorse/" + nome);
System.out.println(nome + " ? " + file.exists());
return file.exists();
}
Come posso fare?
Ho provato a scrivere una cosa del genere ma ovviamente non funziona.
String fl = "\\d+"; //se il nome del file contiene dei numeri
boolean esiste = fileExist(fl); //il deludente risultato sarà ? false ? false
Quindi ho provato scrivendo quest'altro metodo:
public static void controllaFile(File file, String regex) {
final Pattern p = Pattern.compile(regex);
System.out.println(p.matcher(file.getName()).matches());
}
controllaFile(new File("src/risorse/"), "\\d+");
Ma ovviamente neanche questo funziona, come faccio a "dirgli" «cerca un file che contenga dei numeri»?