Как получить изображения из подпапки папки Sdcard? - PullRequest
1 голос
/ 28 декабря 2011

Следующий код используется для получения изображений из определенной папки, но как получить изображения из подпапки папки SDCard.

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

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

Ответы [ 3 ]

6 голосов
/ 28 декабря 2011

Попробуйте ввести следующий код

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();
        }
    }
2 голосов
/ 28 декабря 2011

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

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 голосов
/ 13 февраля 2012

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

...