Ottenere l'elenco della cartelle condivise accessibili

di il
2 risposte

Ottenere l'elenco della cartelle condivise accessibili

Ciao a tutti, per un mio progetto sto cercando di ricreare un'interfaccia per la selezione/salvataggio dei file molto (molto) simile a quella di default del package Swing (JFileChooser).
Non ho incontrato particolari problemi fino a che non mi sono accorto che nella mia interfaccia non ci sono le cartelle condivise ed il gruppo home, le quali sono invece presenti nel JFileChooser, quindi un modo per accedervi da java deve esserci.
La mia interfaccia parte dai drives del computer, ottenuti con il metodo:
File.listRoots();
e secondo la necessità scende via via nelle sottocartelle.
Tra l'altro a giro su internet ho letto che il metodo della classe File che ho scritto sopra dovrebbe già riportare anche le unità di rete disponibili, ho provato anche con la classe FileSystemView (la stessa utilizzata dal JFileChooser) ma non sono riuscito ad ottenere alcun risultato.
Ringrazio in anticipo chi, a conoscenza dell'argomento saprà darmi una mano.

2 Risposte

  • Re: Ottenere l'elenco della cartelle condivise accessibili

    Ap0k ha scritto:


    Tra l'altro a giro su internet ho letto che il metodo della classe File che ho scritto sopra dovrebbe già riportare anche le unità di rete disponibili
    Direi di no .... ma in questo momento non ne posso essere sicuro al 100%. Perlomeno su Windows ho sempre visto che listRoots() dà solo i drive e basta.

    Ap0k ha scritto:


    ho provato anche con la classe FileSystemView (la stessa utilizzata dal JFileChooser) ma non sono riuscito ad ottenere alcun risultato.
    La FileSystemView non è una cosa che si usa tutti i giorni .... anzi (io mai usata prima direttamente).
    Ho scritto questo per prova:
    FileSystemView fsv = FileSystemView.getFileSystemView();
    File[] roots = fsv.getRoots();
    
    for (File root : roots) {
        System.out.println(root);
    
        for (File subitem : fsv.getFiles(root, false)) {
            System.out.println("   " + subitem);
        }
    }
    Sul mio Win7 l'output è
    E:\Users\Andrea\Desktop
       Computer
       E:\Users\Andrea
       Rete
       Raccolte
       Gruppo home
       E:\Users\Andrea\Desktop\Chrome App Launcher.lnk
       E:\....blabla, tutte le icone sul mio desktop....
    Quindi il modo c'è ..... (non ho tempo di indagare oltre ora).
  • Re: Ottenere l'elenco della cartelle condivise accessibili

    Grazie, mi hai risolto il problema! Proprio perché FileSystemView non si utilizza tutti i giorni, evidentemente sbagliavo ad utilizzarla! Ho provato ad ottenere le root da essa ma poi utilizzavo il metodo listFiles(); della classe File per ottenere le sottocartelle, non ottenendo il risultato voluto, mentre come hai detto tu funziona correttamente. Ti ringrazio molto.
Devi accedere o registrarti per scrivere nel forum
2 risposte