Autore Topic: Ottenere lista dei files in una cartella su sd  (Letto 1482 volte)

Offline mattyfog

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lg 2x
Ottenere lista dei files in una cartella su sd
« il: 04 Aprile 2012, 18:06:48 CEST »
0
Ciao a tutti! Lo ammetto fin da subito, sono un neofita con qualche altra esperienza di programmazione in ambito web.
Non capisco perchè non riesco a visualizzare tutti i file in una directory. Il codice non riporta errori nel LogCat, tuttavia il codice TAVOLTA FUNZIONA TALVOLTA NO, a capocchia sua.
Parto subito con il codice:
Codice: [Seleziona]
private static File[] songs_paths = new File[] { new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "_ExternalSD" + File.separator + "Musica") };
        private static String[] songs_extensions = new String[] {"mp3", "aac", "ogg", "wav"};

....

for (File songs_path : songs_paths) {
                        if(songs_path.exists() == true) {
                                Log.v("DisgustingPlayerActivity","esiste");
                               
                                File[] files = songs_path.listFiles();
                                for(File a : files) {
                                        Log.v("MyActivity",a.toString());
                                }
                        }
                        else
                                Log.v("MyActivity","non esiste");
                       
                        File[] files = songs_path.listFiles();
                        Log.v("DisgustingPlayerActivity", songs_path.getPath().toString());
                        if(files != null) {
                                Log.v("MyActivity", "trovato almeno un file");
                        }
                        else {
                                Log.v("MyActivity", "nessun file trovato");
                        }
                }
Al di là del fatto che la nidificazione if else potrebbe essere strutturata meglio (se la directory non esiste ovviamente non esisteranno files!) talvolta l'output mi segnala che la directory esiste e che vi sono al suo interno file e talvolta invece sembra non esistere!! Non ha alcuna logica! Mi sapreste aiutare? Tengo presente che la path fa riferimento a una cartella sulla sd esterna!
Lavoro con un lg optimus dual che si sa, è pieno di bug, ma non credo fino a questo punto!

Sapreste aiutarmi? Grazie mille!

Offline mattyfog

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Lg 2x
Re:Ottenere lista dei files in una cartella su sd
« Risposta #1 il: 04 Aprile 2012, 18:21:26 CEST »
0
Piccola aggiunta: io voglio semplicemente che il mio scopo è quello di ottenere una lista di tutti i files musicali all'interno di una directory, sono aperto a qualsiasi metodo :)

EDIT: ho esaminato meglio la situazione e capito perchè certe volte funziona e certe altre no. Funziona solo se inserisco come path di ricerca "/" o "/mnt". Il mio stesso codice sostiene che tutte le subdirectories di "/mnt/ siano vuote. Sarà un problema di permessi?

EDIT EDIT!!! L'unico probalema che ho è che durante la modalità di debug non riesco ad accedere all'sd esterna perchè è montata come archivio di massa!
« Ultima modifica: 05 Aprile 2012, 19:58:25 CEST da mattyfog »

Offline MarkII

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Ubuntu 11.10
Re:Ottenere lista dei files in una cartella su sd
« Risposta #2 il: 10 Aprile 2012, 10:37:21 CEST »
0
"_ExternalSD" è una cartella che hai fatto tu? altrimenti non ci vuole.
Se il nome della cartella è Musica, creata nella sdcard, il path sarà /sdcard/Musica e il path lo ottieni nel modo più corretto così:

Codice (Java): [Seleziona]
Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Musica"