Ricerca nome file in memoria

di il
7 risposte

Ricerca nome file in memoria

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»?

7 Risposte

  • Re: Ricerca nome file in memoria

  • Re: Ricerca nome file in memoria

    Ciao, non è un problema il percorso del file, quello so già come trovarlo, essendo in Android, posso utilizzare queste 2 righe di codice:
    File dir = getFilesDir();
    File file = new File(dir, nomeFile);

    Il mio problema è «come passare il codice servendomi di una regex»

    Se scrivo
    if(fileExist("nomeFile.txt")) {
              ...
            }
    Ottengo un booleano, quindi non è un problema conoscendo già il nome.
    Il fatto è che mi trovo con dei file che per convenzione ho nominato 130,140,150,160, eccetera. Ogni volta che aggiorno dovrò eliminare il file o i file obsoleti, quindi pensavo a una comoda ricerca tipo trovare il file che contiene dei numeri e se il caso eliminarlo.
  • Re: Ricerca nome file in memoria

  • Re: Ricerca nome file in memoria

    Sì, list() accetta String[], mentre listFiles() accetta come parametro File[].
    Andrè, lo so, hai ragione dovrei arrivarci da solo, ma il tempo è tiranno e a quanto pare non conosco abbastanza la sintassi di queste benedette regex e dammi una mano su.

    ..pensavo bastasse un "\\d+"

    Potresti farmi un esempio esplicito?
  • Re: Ricerca nome file in memoria

  • Re: Ricerca nome file in memoria

    andbin ha scritto:


    Accetta?? Semmai, restituisce.
    ...e sì, quello insomma.

    Questo codice funzionerà sicuramente anche in Androide.
    Grazie!
  • Re: Ricerca nome file in memoria

    Confermo funziona, grazie!
Devi accedere o registrarti per scrivere nel forum
7 risposte