2012-01-12 4 views
9

Я пытаюсь написать приложение на Android, которое будет заполнять счетчик именами файлов, найденных на SD-карте, с определенными расширениями. До сих пор я могу получить заполнение счетчика правильными файлами, но путь показывается. Может ли кто-нибудь ПОЖАЛУЙСТА сказать мне, как получить ТОЛЬКО имя файла определенного файла в каталоге на SD-карте в Android?Получить имена файлов из каталога на Android

Спасибо

ответ

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 
} 

Посмотрите Environment страницу для получения дополнительной информации.

+0

Есть ли способ сделать то же самое в JNI? –

+0

Этот код дает NPE. Проверьте мой ответ ниже. Это сработало для меня. BTW плюс 1 для приятного ответа! –

0

могли бы вы обработать строку в обратном порядке (справа налево), находя первый слэш, а затем перерезав строку в этой точке и, взяв правую часть строки в качестве имени файла?

0

метод использования GetName() объекта файла:

file.getName(); 
2

Try ниже код

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

не очень полезно без объяснения причин и не затрагивает конкретный вопрос (фильтр по имени/расширению) –

+0

ok, спасибо за вас –

0

Над ответами дает исключения нулевого указателя в моем случае. Следующий код работал для меня:

File yourDir = new File(Environment.getExternalStorageDirectory().getPath() + "/WhatsApp/Databases"); 
    for (File f : yourDir.listFiles()) { 
     if (f.isFile()) 
      name = f.getName(); 
     // Do your stuff 
} 
Смежные вопросы