1

嗨,我的 SD 卡上有一个名为 Images 的文件夹。即/mnt/sdcard/images。我正在使用此代码访问这些图像

private List<String> getList(){
    List<String> list = new ArrayList<String>();
    list.add("/mnt/sdcard/Images/a03.JPG");  
    list.add("/mnt/sdcard/Images/a02.jpg");  
    list.add("/mnt/sdcard/Images/a01.jpg");  
    return list;
}   

但是我想访问这些图像而不是拥有所有完整路径。喜欢

    list.add("/Images/a03.JPG");

但我收到读取错误文件未找到异常。请提供任何帮助。

4

3 回答 3

2

不要使用硬代码路径。使用 Environment.getExternalStorageDirectory()

    private File[] listFile;  
    ArrayList<String> f = new ArrayList<String>();  
    public void getFromSdcard()
    {
        File file= new File(android.os.Environment.getExternalStorageDirectory(),"Images");
            if (file.isDirectory())
            {
                listFile = file.listFiles();
                for (int i = 0; i < listFile.length; i++)
                {

                    f.add(listFile[i].getAbsolutePath());

                }

            }
    }

在清单文件中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

假设您的文件夹包含其他文件。

     String Patternjpg = ".jpg";  
     for(int i = 0; i < listFile.length; i++) {  
     if (listFile[i].getName().endsWith(Patternjpg)){
             f.add(listFile[i].getAbsolutePath());
       }
       }
于 2013-06-10T19:04:38.833 回答
1

用这个

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + PATH_SD_CARD;
public final static String PATH_SD_CARD = "/Images/";

然后是你的数组列表。

 private List<String> getList(){
    List<String> list = new ArrayList<String>();
    list.add(path +"a01.jpg");  
    list.add(path +"a02.jpg");  
    list.add(path +"a03.jpg");  
    return list;
}
于 2013-06-10T20:37:42.280 回答
0

尝试以下操作:

private List<String> getList(){
  String PATH = "/mnt/sdcard/Images/";
  List<String> list = new ArrayList<String>();
  list.add(PATH + "a03.JPG");  
  list.add(PATH + "a02.jpg");  
  list.add(PATH + "a01.jpg");  
  return list;
} 
于 2013-06-10T19:04:46.613 回答