2010-08-05 425 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