列出内部和外部存储的所有图像路径

时间:2018-12-03 09:35:29

标签: android image arraylist filepath

我使用以下代码来列出外部存储中的所有图像路径,并将它们放在Array-List中,并且可以100%工作。但是我还需要从内部存储列出图像,以便在Array-List中获得内部和外部存储的所有图像路径,因此如何更改代码以实现此目的。预先感谢。

public ArrayList<String> getFilePaths()
{


    Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 
    String[] projection = {MediaStore.Images.ImageColumns.DATA}; 
    Cursor c = null;
    SortedSet<String> dirList = new TreeSet<String>();
    ArrayList<String> resultIAV = new ArrayList<String>();

     String[] directories = null; 
    if (u != null) 
    { 
        c = managedQuery(u, projection, null, null, null); 
    } 

    if ((c != null) && (c.moveToFirst())) 
    { 
        do 
        {
            String tempDir = c.getString(0);
            tempDir = tempDir.substring(0, tempDir.lastIndexOf("/"));
            try{
                dirList.add(tempDir);
            }
            catch(Exception e)
            {

            }
        } 
        while (c.moveToNext());
        directories = new String[dirList.size()];
        dirList.toArray(directories);

    }

    for(int i=0;i<dirList.size();i++)
    {
        File imageDir = new File(directories[i]);
        File[] imageList = imageDir.listFiles();
        if(imageList == null)
            continue;
        for (File imagePath : imageList) { 
            try {

                    if(imagePath.isDirectory())
                    {
                        imageList = imagePath.listFiles();

                    }
                    if ( imagePath.getName().contains(".jpg")|| imagePath.getName().contains(".JPG")  
                            || imagePath.getName().contains(".jpeg")|| imagePath.getName().contains(".JPEG")                                    
                            || imagePath.getName().contains(".png") || imagePath.getName().contains(".PNG")
                            || imagePath.getName().contains(".gif") || imagePath.getName().contains(".GIF")
                            || imagePath.getName().contains(".bmp") || imagePath.getName().contains(".BMP")                         
    )
                    {



                        String path= imagePath.getAbsolutePath();
                    resultIAV.add(path);

                    }
                }
        //  }
        catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    return resultIAV;


}

0 个答案:

没有答案