【问题标题】:Android File.listFiles does not show all the files inside the directoryAndroid File.listFiles 不显示目录内的所有文件
【发布时间】:2013-09-04 14:02:09
【问题描述】:

我正在使用 Android Emulator 2.2 版本开发一个小应用程序。我应该列出一个目录下的所有图像文件(jpg)文件。我通过 ADB puash 命令将文件复制到“/data”。

示例:/data/1.jpg

现在我创建一个以目录路径为输入的 File 对象并调用 listFiles api。

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

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

但奇怪的是,如果我使用硬编码路径“/data/1.jpg”创建一个 ImageView,我可以看到图像被绘制出来。

谁能帮帮我....哪里有问题

谢谢, 康迪尼亚


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 扩展名的文件。但是如果我在 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

【问题讨论】:

    标签: android


    【解决方案1】:

    我探索了该代码,发现麻烦在于许可。正如您在下面看到的,您无法读取该目录。找到另一个目录来收集您的文件。

    **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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      相关资源
      最近更新 更多