2011-12-28 2 views
1

Следующий код используется для получения изображений из определенной папки, но как получить изображения подкаталогов папки sdcard.Как получить изображения из подпапки папки Sdcard?

Cursor actualimagecursor = managedQuery(
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj, 
    MediaStore.Images.Media.DATA + " like ? ", 
    new String[] { "%unzipped%" }, null); 

Извините за плохое английское сообщение.

+0

http://android-er.blogspot.com/2010/01/android-file-explorer-with-jpgs-exif_08.html –

ответ

5

Попробуйте с помощью следующего кода

public void searchImageFromSpecificDirectory() { 

     String path = null; 

     String uri = MediaStore.Images.Media.DATA; 
     // if GetImageFromThisDirectory is the name of the directory from which image will be retrieved 
     String condition = uri + " like '%/GetImageFromThisDirectory/%'"; 
     String[] projection = { uri, MediaStore.Images.Media.DATE_ADDED, 
       MediaStore.Images.Media.SIZE }; 
     Vector additionalFiles = null; 
     try { 
      if (additionalFiles == null) { 
       additionalFiles = new Vector<String>(); 
      } 



      Cursor cursor = managedQuery(
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, 
        condition, null, null); 
      if (cursor != null) { 

       boolean isDataPresent = cursor.moveToFirst(); 

       if (isDataPresent) { 

        do { 

         path = cursor.getString(cursor.getColumnIndex(uri)); 
System.out.println("...path..."+path); 
additionalFiles.add(path); 
      }while(cursor.moveToNext()); 
       } 
      if (cursor != null) { 
       cursor.close(); 
      } 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
+0

Ваш код работает для папки, но не для подпапки папки. –

+0

plz помогите мне как можно скорее получить изображения подпапки папки SD-карты. –

+0

укажите путь в подпапке и проверьте –

2

Попробуйте этот код ниже: В папке изображений содержит Sample подпапки.

Cursor cursor = managedQuery(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,Images.Media.DATA + " like '/mnt/sdcard/Images/Sample%'", null, null); 

while (cursor.moveToNext()) { 
      System.out.println(cursor.getString(cursor.getColumnIndex(Images.Media.DATA))); 
      System.out.println(cursor.getString(cursor.getColumnIndex(Images.Media.DISPLAY_NAME))); 

} 
0

Я хочу дать вам одно предложение, посмотреть, хотите ли вы посмотреть конкретный каталог/sdcard /. Затем используйте класс FileObserver и сделайте его рекурсивным для каждого подкаталога. Это поможет вам точно. Попробуйте это. Создайте стек или ArrayList, который сохранит все каталоги в/sdcard /, а затем startWatching для всех каталогов.

Смежные вопросы