Hallo auf einem Standard jungfräulichen Android ist der Ortner nicht vorhanden.
Wenn doch wurde er von dir oder einer App erstellt.
Die Methode die du nennst ist ab Android Api 29 deprecated .
Environment.getExternalStoragePublicDirectory(....
Auch der volle zugriff auf die interne oder externe SD karte ist nicht mehr mit den üblichen File Methoden möglich.
Auch das vorher erstellen des Ordners mit mkDir() ist da so nicht mehr möglich.
Ohne SAF geht es nicht mehr vollzugriff auf die Sdkarte zu haben.
https://developer.android.com/guide/topics/providers/document-provider
Hier mal etwas Beispiele Code zum testen wo du zugriff hast. Lasse unter den verschrienen APIs laufen und du wirst im log sehen was geht.
Ich gehe mal davon aus das du die Permissoin WRITE_EXTERNAL_STORAGE hast denn die braucht du unter API 23 ja auch.
void test(){
File f= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
if( f.exists()!= true){
boolean bb = f.mkdir();
}
String extPath= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath();
File file0 = new File(extPath,"new0.txt");
try {
Log.i("test", "Datei 0 :"+ extPath );
boolean b = file0.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file0 :"+ extPath +" " + e);
e.printStackTrace();
}
// path ohne Permission
extPath = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath();
File file1 = new File(extPath, "neu1.txt");
try {
Log.i("test", "Datei 1 :"+ extPath );
boolean b = file1.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file1 :"+ extPath +" " + e);
e.printStackTrace();
}
// interne sd Karte
File[] fs = getExternalFilesDirs(null);
extPath = fs[0].getAbsolutePath();
File file2 = new File(extPath, "neu2.txt");
try {
Log.i("test", "Datei 2 :"+ extPath );
boolean b = file2.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file2 :"+extPath +" " + e);
e.printStackTrace();
}
extPath = fs[0].getAbsolutePath().substring(0, fs[0].getAbsolutePath().indexOf("/A"));
File file3 = new File(extPath, "neu3.txt");
try {
Log.i("test", "Datei 3 :"+ extPath );
boolean b = file3.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file3 :" +extPath +" "+ e);
e.printStackTrace();
}
//externe sd Karte
extPath = fs[1].getAbsolutePath();
File file4 = new File(extPath, "neu4.txt");
try {
Log.i("test", "Datei 4 :"+ extPath );
boolean b = file4.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file4 :" +extPath +" "+ e);
e.printStackTrace();
}
extPath = fs[1].getAbsolutePath().substring(0, fs[1].getAbsolutePath().indexOf("/A"));
File file5= new File(extPath, "neu5.txt");
try {
Log.i("test", "Datei 5 :"+ extPath );
boolean b = file5.createNewFile();
} catch (IOException e) {
Log.i("test", "Fehler bei file5 :"+extPath +" "+ e);
e.printStackTrace();
}
}
— geändert am 19.04.2020, 21:58:04
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.