2010-08-05 71 views
4

我正在使用Android Emulator 2.2版本開發一個小應用程序。我應該列出目錄下的所有圖像文件(jpg)文件。我通過ADB puash命令將文件複製到「/ data」。Android File.listFiles不顯示目錄中的所有文件

例子:/data/1.jpg

現在我創建作爲輸入的目錄路徑的文件對象,並調用listFiles API。

File dir = new File(dirPath); 
File[] filelist = dir.listFiles(); 

但fileList不包含圖像文件(1.jpg)。

但奇怪的是,如果我創建一個帶硬編碼路徑「/data/1.jpg」的ImageView,我可以看到繪製的圖像。

有人能幫助我....那裏可能是問題

感謝, Kowndinya


public int PopulateList(final String dirPath) 
{ 
    m_CurrentDirectory = new File(dirPath); 
    _namelist.clear(); 
    _pathlist.clear(); 

    File[] fileList = m_CurrentDirectory.listFiles(imFilter); 
    if (fileList != null) 
    { 
     for (int i = 0;i<fileList.length;i++) 
     { 
      _namelist.addElement(fileList[i].getName()); 
      _pathlist.addElement(fileList[i].getAbsolutePath()); 
     } 
    } 
    notifyDataSetChanged(); 
    return 0; 
} 

imFilter是接受以JPG擴展名的文件只有一個的FilenameFilter。但是,如果我在imFilter代碼中放置斷點,斷點不會觸發事件。

Output of adb shell ls -l /data: 
------------------------------------ 
drwxrwx--t system misc    2010-08-05 15:32 misc 
drwxrwx--x shell shell    2010-08-05 15:32 local 
drwxrwx--x system system   2010-08-05 15:32 app-private 
drwx------ system system   2010-08-05 15:34 backup 
drwx------ root  root    2010-08-05 15:34 property 
drwxrwx--x system system   2010-08-05 15:35 data 
-rw-rw-rw- root  root  75752 2010-03-30 12:26 zona_ind_012.jpg 
drwxrwx--x system system   2010-08-05 16:16 app 
drwxr-x--- root  log    2010-08-05 15:32 dontpanic 
drwxrwx--x system system   2010-08-05 16:25 dalvik-cache 
drwxrwxr-x system system   2010-08-05 17:16 system 
drwxrwx--- root  root    2010-08-05 15:32 lost+found 

回答

3

我探索那個代碼,看看,麻煩是在權限。正如你在下面看到的,你不能讀那個dir.Find另一個dir來收集你的文件。

**Can read dir:** 
/dev =true 
/root =false 
/data =false 
/default.prop =true 
/init =false 
/init.rc =false 
/proc =true 
/sbin =false 
/sys =true 
/system =true 
/etc =true 
/d =false 
/mnt =true 
/acct =true 
/sdcard =true 
/cache =false 
/config =false 

並且您可以從「ls -l」命令中看到。 explain what does mean