Невозможно удалить файлы (.delete () Return false) - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь удалить изображение из каталога, но когда я использую метод, он возвращает false

public void deleteImage() {

    String file_path = Environment.getExternalStorageDirectory() + "/Angular/JPEG_20181010_282_9_320446411.jpg";

    //Result Path: /storage/emulated/0/Angular/JPEG_20181010_282_9_320446411.jpg

    File fdelete = new File(file_path); 
    if (fdelete.exists()) {
        if (fdelete.delete()) { //This return false
            Log.e("-->", "file Deleted :" + file_path );
        } else {
            Log.e("-->", "file not Deleted :" + file_path );
        }
    }
}

Я собирал примеры других сообщений, но ни один из них не работает для меня

Манифест:

<uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission
    android:name="android.permission.READ_INTERNAL_STORAGE"/>

1 Ответ

0 голосов
/ 19 октября 2018

Измените свою логику и свой метод на:

public void deleteImage() {

    String file_path = Environment.getExternalStorageDirectory() + "/Angular/JPEG_20181010_282_9_320446411.jpg";

    //Result Path: /storage/emulated/0/Angular/JPEG_20181010_282_9_320446411.jpg

    File fdelete = new File(file_path); 
    if (fdelete.exists()) {
            fdelete.delete() // delete the file here
            Log.e("-->", "Success, file Deleted :" + file_path);
        } else {
            Log.e("-->", "file not Deleted :" + file_path);
        }
}

exists() проверит, существует он или нет, нет необходимости в дополнительном условии.

Лучше добавитькоды внутри try-catch, чтобы уловить все ситуации в будущем.(Нет разрешения или каких-либо ошибок)

...