Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - File corrente = new File(percorso);  :(
Forum - Java - File corrente = new File(percorso); :(

Avatar
zottiman (Normal User)
Pro


Messaggi: 121
Iscritto: 06/07/2009

Segnala al moderatore
Postato alle 14:21
Sabato, 18/09/2010
Codice sorgente - presumibilmente Java

  1. public static String listaFile (String percorso){
  2.                 String s="";
  3.  
  4.  
  5.                 try{
  6.                         File corrente = new File(percorso);
  7.                         String elenco[] = corrente.list();
  8.  
  9.                         for(int i=0 ; i<elenco.length; i++){
  10.                                 File f = new File(elenco[i]);
  11.                                 if(f.isFile()){
  12.                                         s+= elenco[i] + ";";
  13.  
  14.                                 }
  15.                         }
  16.                 }
  17.                 catch(Exception e){
  18.                         System.out.println(e);
  19.                 }
  20.                 return s;
  21.         }



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 il 18/09/2010 alle 14:24
PM
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 16:51
Sabato, 18/09/2010
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:

Codice sorgente - presumibilmente Java

  1. public static String listaFile (String percorso) throws Exception{
  2.                 String s="";
  3.                 try{
  4.                         File corrente = new File(percorso);
  5.                         if(!corrente.exist()){
  6.                         throw new Exception("Il file su cui operare non esiste!");
  7.                         }
  8.                         if(!corrente.isDirectory()){
  9.                             throw new Exception("Impossibile operare su un file che non sia una directory!");
  10.                         }
  11.                         String elenco[] = corrente.list();
  12.  
  13.                         for(int i=0 ; i<elenco.length; i++){
  14.                                 File f = new File(elenco[i]);
  15.                                 if(f.isFile()){
  16.                                         s+= elenco[i] + ";";
  17.  
  18.                                 }
  19.                         }
  20.                 }
  21.                 catch(Exception e){
  22.                         System.out.println(e);
  23.                 }
  24.                 return s;
  25.         }



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 il 18/09/2010 alle 16:54
PM