1

こんにちは、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");

しかし、読み取りエラーファイルが見つかりませんという例外が発生しています。助けてください。

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 に答える
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 に答える