如何从 Android 5 的外部存储中删除文件

M. *_*ami 5 android delete-file android-permissions android-external-storage

我用了

File f=new File(MyPath);
f.delete();
Run Code Online (Sandbox Code Playgroud)

我使用了权限WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE,但它在 Android 5 中不起作用。

Logcat 消息:

java.io.FileNotFoundException: storage/external_SD/mm.txt: open failed: EACCES (Permission denied)  
Run Code Online (Sandbox Code Playgroud)

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mahestan_programming.myapplication">

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

自版本 4.4 起,我们无法从 MICRO SD 卡删除和写入文件。现在它是只读的。

gre*_*pps 1

storage/external_SD/mm.txt
Run Code Online (Sandbox Code Playgroud)

这不是一条有效的路径。你应该使用

/storage/external_SD/mm.txt
Run Code Online (Sandbox Code Playgroud)

这本来就不是外部存储。它是可移动存储。

从 Android 4.4 开始,应用程序无法再写入 micro SD 卡。

谷歌就这样决定了。

我们必须忍受它。但很难。