Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    File in cartella e sottocartelle

    Salve gente,
    com'è possibile risucire ad avere una lista di tutti i file contenuti in un cartella?
    per contenunti in un cartella intendo anche nelle sottocartelle e così via.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ti devi costruire una funzione che si legge l'elenco dei file contenuti in una directory (tramite l'utilizzo del metodo listFiles() della classe File) e fa la stessa cosa ricorsivamente su tutte le sottodirectory contenute.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da LeleFT
    Ti devi costruire una funzione che si legge l'elenco dei file contenuti in una directory (tramite l'utilizzo del metodo listFiles() della classe File) e fa la stessa cosa ricorsivamente su tutte le sottodirectory contenute.


    Ciao.
    ma è
    File f= new File?
    no perchè eclipse mi da errore..

    [un pò ot]
    altra cosa, come si fa a far in modo che eclipse metta automaticamente gli import?
    ho scaricato l'editor visuale di eclipse, come si fa ad usarlo?
    ultima cosa: ho scaricato una libreria .jar, dove devo metterla per farla andare?
    [/un pò ot]

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non avendo a disposizione il codice, dato che non lo hai postato, non è semplice aiutarti.
    Innanzitutto per creare un oggetto si usa l'operatore new seguito dal costruttore della classe. Ad esempio:
    codice:
    File f = new File("percorso_alla_tua_directory");
    Perchè Eclipse ti dia errore non lo so, probabilmente non hai specificato di importare il package java.io dove risiede la classe File.

    Per tutte le altre domande su Eclipse, credo che dovresti cimentarti un po' di più su Java e meno su Eclipse, dato che l'utilizzo di ambienti di sviluppo del calibro di Eclipse o NetBeans si adattano ben poco a chi inizia a programmare (anzi, dal mio punto di vista, l'approccio ad uno di essi è semplicemente deleterio).

    Per la libreria che hai scaricato hai due possibilità:
    1) La metti nella directory lib/ext della directory di installazione del JDK, oppure
    2) La scompatti all'interno della directory della tua applicazione


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da LeleFT
    Non avendo a disposizione il codice, dato che non lo hai postato, non è semplice aiutarti.
    Innanzitutto per creare un oggetto si usa l'operatore new seguito dal costruttore della classe. Ad esempio:
    codice:
    File f = new File("percorso_alla_tua_directory");
    Perchè Eclipse ti dia errore non lo so, probabilmente non hai specificato di importare il package java.io dove risiede la classe File.

    Per tutte le altre domande su Eclipse, credo che dovresti cimentarti un po' di più su Java e meno su Eclipse, dato che l'utilizzo di ambienti di sviluppo del calibro di Eclipse o NetBeans si adattano ben poco a chi inizia a programmare (anzi, dal mio punto di vista, l'approccio ad uno di essi è semplicemente deleterio).

    Per la libreria che hai scaricato hai due possibilità:
    1) La metti nella directory lib/ext della directory di installazione del JDK, oppure
    2) La scompatti all'interno della directory della tua applicazione


    Ciao.
    ma java l'ho fatto l'anno scoroso nel corso di programmazione 2, è che sono un pò arrugginito.. prima usavo jdev ma nn mi piace.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da bako
    ma java l'ho fatto l'anno scoroso nel corso di programmazione 2, è che sono un pò arrugginito.. prima usavo jdev ma nn mi piace.
    Io uso il blocco note... e mi piace tantissimo!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    codice:
    package provapkg;
    import java.io.File;
    
    
    public class TestMain {
    	/**
    	 * @param args
    	 */
    	public void lista (String partenza){
    		File f = new File(partenza);
    		File[] list=f.listFiles();
    		int MAX=list.length;
    		for (int i = 0; i<MAX;  i++){
    			if (list[i].isDirectory()) 
    				this.lista(list[i].getName());
    			else
    				System.out.println(list[i].getName());
    		}
    	}
    	public static void main(String[] args) {
    		TestMain t = new TestMain();
    		t.lista("C:\\");
    	}
    }
    il problema è la ricorsione. è dove c'è il neretto che da il problema. al richiamare la funzione
    Exception in thread "main" java.lang.NullPointerException
    at provapkg.TestMain.lista(TestMain.java:12)
    at provapkg.TestMain.lista(TestMain.java:15)
    at provapkg.TestMain.main(TestMain.java:22)
    credo sia dovuto al fatto che l'array nn è dichiarato o qualcosa di simile.. come si può risolvere?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Credo che il problema stia nel fatto che dovresti passare il percorso assoluto e non solo il nome della directory.
    Per farla più breve puoi sostituire il parametro del metodo lista() in modo che esso accetti un oggetto File e non uno String. Così ti eviti il problema e passi solo il contenuto dell'array.
    codice:
    public class TestMain {
    	/**
    	 * @param args
    	 */
    	public void lista (File partenza){   // <-- modificato qui
    		File[] list=partenza.listFiles();   // <-- modificato qui
    		int MAX=list.length;
    		for (int i = 0; i<MAX;  i++){
    			if (list[i].isDirectory()) 
    				this.lista( list[i] );  // <-- modificato qui
    			else
    				System.out.println(list[i].getName());
    		}
    	}
    	public static void main(String[] args) {
    		TestMain t = new TestMain();
    		t.lista( new File("C:\\") );   // <-- modificato qui
    	}
    }
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.