2012-01-12 9 views
9

Estoy tratando de escribir una aplicación en Android que llene un spinner con los nombres de archivo de los archivos encontrados en la tarjeta SD con extensiones específicas. Puedo obtener hasta ahora para poblar el rotor con los archivos correctos, pero la ruta también se muestra. ¿Alguien puede decirme cómo obtener SOLAMENTE el nombre de archivo de un archivo específico en un directorio de la tarjeta SD en Android?Obtener nombres de archivos de un directorio en Android

Gracias

Respuesta

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 
} 

Echa un vistazo a la página Environment para obtener más información.

+0

¿Hay alguna manera de hacer lo mismo en JNI? –

+0

este código está dando NPE. Verifique mi respuesta a continuación. Eso funcionó para mí. Por cierto, más 1 para una buena respuesta! –

0

se puede procesar la cadena en orden inverso (derecha a izquierda), la búsqueda de la primera barra, a continuación, cortar la cadena en ese punto y tomar la parte más a la derecha de la cadena como el nombre del archivo?

0

utilice el método getName() del objeto de archivo:

file.getName(); 
2

Try continuación Código

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

no muy útil sin explicación y no aborda la pregunta específica (filtrar por nombre/extensión) –

+0

ok, gracias por ti –

0

encima respuestas están dando a excepción de puntero nulo en mi caso. El siguiente código funcionó para mí:

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