嗨,我的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");
但我得到读错误文件未找到异常。 请帮忙。
答案 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;
}