SD卡图像的相对路径

时间:2013-06-10 19:01:12

标签: android

嗨,我的sdCard上有一个名为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");

但我得到读错误文件未找到异常。 请帮忙。

3 个答案:

答案 0 :(得分: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());
       }
       }

答案 1 :(得分: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;
}

答案 2 :(得分: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;
}