无法删除文件(.delete() Return false)

Cannot delete files (.delete() Return false)

我正在尝试从目录中删除图像,但是当我使用该方法时它 returns 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 );
        }
    }
}

我一直在收集其他帖子的示例,但 none 对我有用

清单:

<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"/>

将您的逻辑和方法更改为:

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里面,这样以后情况就一目了然了。 (没有权限或任何错误)