2011-12-28 172 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 – 2011-12-28 11:56:19

回答

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

您的代碼適用於文件夾,但不適用於文件夾的子文件夾。 – 2011-12-28 12:22:11

+0

plz幫助我儘快獲取SD卡文件夾子文件夾的圖像。 – 2011-12-28 13:24:56

+0

給予子文件夾的路徑和檢查 – 2011-12-28 13:28:11

2

試試下面這段代碼:在圖片文件夾中包含樣本子文件夾中。

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用於所有目錄。

相關問題