Oppure

Loading
18/09/10 12:21
zottiman
public static String listaFile (String percorso){
		String s="";


		try{
			File corrente = new File(percorso);
			String elenco[] = corrente.list();

			for(int i=0 ; i<elenco.length; i++){
				File f = new File(elenco[i]);
				if(f.isFile()){
					s+= elenco[i] + ";";

				}
			}
		}
		catch(Exception e){
			System.out.println(e);
		}
		return s;
	}


Vi espongo il mio problema:
se io passo come stringa "." mi restituisce correttamente la lista dei file contenuti nella cartella in cui risiede il programma, se invece passo il percorso della cartella es. "C:\pippo" non funziona, cioè restituisce una stringa vuota.
Cosa devo fare per potermi spostare all'interno del disco come voglio?

grazie a tutti in anticipo dell'attenzione.
Ultima modifica effettuata da zottiman 18/09/10 12:24
aaa
18/09/10 14:51
paoloricciuti
Penso che dipenda dal fatto che non hai aggiunto il / alla fine. Dunque lui tratta pippo come un file. E non è possibile eseguire l'operazione list() su un file. Quindi per evitare questo devi utilizzare (a mio parere) le eccezioni.

Ecco secondo me come dovresti modificare la classe:

public static String listaFile (String percorso) throws Exception{
                String s="";
                try{
                        File corrente = new File(percorso);
                        if(!corrente.exist()){
                        throw new Exception("Il file su cui operare non esiste!");
                        }
                        if(!corrente.isDirectory()){
                            throw new Exception("Impossibile operare su un file che non sia una directory!");
                        }
                        String elenco[] = corrente.list();
 
                        for(int i=0 ; i<elenco.length; i++){
                                File f = new File(elenco[i]);
                                if(f.isFile()){
                                        s+= elenco[i] + ";";
 
                                }
                        }
                }
                catch(Exception e){
                        System.out.println(e);
                }
                return s;
        }


In questo modo se il file non esiste o non è una cartella il programma si blocca. Per quanto riguarda la tua domanda, ripeto bisogna inserire il / alla fine!
Ultima modifica effettuata da paoloricciuti 18/09/10 14:54
aaa