2012-01-12 13 views
9

Sto provando a scrivere un'app in Android che inserirà uno spinner con i nomi file dei file trovati sulla scheda SD con estensioni specifiche. Posso arrivare così lontano per popolare lo spinner con i file corretti, ma viene mostrato anche il percorso. Qualcuno può PER FAVORE dirmi come ottenere SOLO il nome file di un file specifico in una directory sulla scheda SD in Android?Ottieni nomi file da una directory in Android

Grazie

risposta

23
File sdCardRoot = Environment.getExternalStorageDirectory(); 
File yourDir = new File(sdCardRoot, "path"); 
for (File f : yourDir.listFiles()) { 
    if (f.isFile()) 
     String name = f.getName(); 
     // Do your stuff 
} 

Date un'occhiata al Environment pagina per maggiori informazioni.

+0

C'è un modo per fare lo stesso in JNI? –

+0

questo codice sta dando NPE. Controlla la mia risposta qui sotto. Questo ha funzionato per me. BTW più 1 per una buona risposta! –

0

potrebbe elaborare la stringa in ordine inverso (da destra a sinistra), trovando il primo slash, poi tagliando la corda in quel punto e prendere la parte più a destra della stringa come il nome del file?

0

utilizzare il metodo getName() del file oggetto:

file.getName(); 
2

Prova sottostante Codice

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdCard, "yourpath"); 
for (File f : dir.listFiles()) { 
    if (f.isFile()) 
     String name = f.getName(); 
     // do whatever you want with filename 
} 
0
File filePath= new File(File Address); 
File[] fileList = filePath.listFiles(); 
String name = fileList [0].getName().toString(); 
+0

non molto utile senza spiegazione e non affronta la domanda specifica (filtro per nome/estensione) –

+0

ok, grazie per voi –

0

Sopra risposte stanno dando un'eccezione di puntatore nullo nel mio caso. Il seguente codice ha funzionato per me:

File yourDir = new File(Environment.getExternalStorageDirectory().getPath() + "/WhatsApp/Databases"); 
    for (File f : yourDir.listFiles()) { 
     if (f.isFile()) 
      name = f.getName(); 
     // Do your stuff 
} 
Problemi correlati