Список всех путей к изображениям из внутреннего и внешнего хранилища - PullRequest
0 голосов
/ 03 декабря 2018

Я использовал приведенный ниже код, чтобы перечислить все пути к изображениям из внешнего хранилища и поместить их в 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;


}
...