I try to create a folder in SD Card (other than device memory) to backup some files. To identify storage devices I use...
List<String> allStoragePlaces = new ArrayList<>();
File[] listExternalDirs = ContextCompat.getExternalFilesDirs(getApplicationContext(), null);
for (int i = 0; i < listExternalDirs.length; i++) {
if(listExternalDirs[i] != null) {
String path = listExternalDirs[i].getAbsolutePath();
int indexMountRoot = path.indexOf("/Android/data/");
if(indexMountRoot >= 0 && indexMountRoot <= path.length()){
allStoragePlaces.add( i, path.substring(0, indexMountRoot) );
}
}
}
In my case this producess...
- 0) /storage/emulated/0
- 1) /storage/4960-1EFE
I try to generate folder "bak" in /storage/4960-1EFE with no sucess with
File bakDirExtern = new File( "/storage/4960-1EFE/bak");
if( ! bakDirExtern.exists() || ! bakDirExtern.isDirectory()) {
if(!bakDirExtern.mkdirs()) {
Log.v("wew", "FOLDER NOT GENERATED");
}
}