you can get your list of files in marshmallow like this
//this function will check for runtime permission so Add this block in your OnCreate() Method
if(checkandRequestPermission()) {
File sdCardRoot = Environment.getExternalStorageDirectory();
Log.w("SDCardRoot", "" + sdCardRoot);
File yourDir = new File(sdCardRoot, "/yourFolderName");
// This will check if directory is exist or not
if (!yourDir.exists()) {
yourDir.mkdirs();
}
if(yourDir.isDirectory()){
File[] content = yourDir.listFiles();
for(int i = 0; i<content.length;i++){
// Your List of Files
Log.w("List", "" + String.valueOf(content[i]));
}
}
Now If you are using api level 23 then you need to add runtime permission like this
// Declare this function to check for runtime permission
private boolean checkandRequestPermission(){
int storageread = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
List<String> listpermissionNeeded = new ArrayList<>();
if (storageread != PackageManager.PERMISSION_GRANTED) {
listpermissionNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
if (!listpermissionNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listpermissionNeeded.toArray(new String[listpermissionNeeded.size()]),REQUEST_ID_MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
Add This permission in your Manifiest
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>