我用过
File f=new File(MyPath);
f.delete();
我使用了权限WRITE_EXTERNAL_STORAGE
和READ_EXTERNAL_STORAGE
,但它在Android 5中无法使用。
Logcat消息:
java.io.FileNotFoundException: storage/external_SD/mm.txt: open failed: EACCES (Permission denied)
清单文件:
<?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>
自版本4.4以来,我们无法从微SD卡中删除和写入文件。它现在只读。
答案 0 :(得分:2)
请仔细检查您的文件路径,路径如下:
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Audio/audio_20160622_081844.3gp";
File file = new File(filePath);
if (file.exists()) {
file.delete();
}
答案 1 :(得分:1)
storage/external_SD/mm.txt
这不是一条有效的道路。你应该使用
/storage/external_SD/mm.txt
这不是外部存储开始。它是可移动存储。
从Android 4.4开始,应用无法再写入微型SD卡了。
谷歌决定这样做。我们必须忍受它。但很难。
答案 2 :(得分:0)
试试这个:
private ArrayList<String> _filePaths = new ArrayList<String>();
final String imgPath=_filePaths.get(_postion);
final Snackbar snackbar = Snackbar
.make(view, "Delete Image?", Snackbar.LENGTH_LONG)
.setAction("DELETE", new View.OnClickListener() {
@Override
public void onClick(View view) {
File file = new File(imgPath);
file.delete();
Snackbar snackbar1 = Snackbar.make(view, "Image Deleted!", Snackbar.LENGTH_SHORT);
notifyDataSetChanged();
View sbView = snackbar1.getView();
TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.YELLOW);
snackbar1.show();
}
});
snackbar.setActionTextColor(Color.RED);
View sbView = snackbar.getView();
TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.YELLOW);
snackbar.show();
如果它没有工作意味着发布logcat和你正在使用的代码
答案 3 :(得分:0)
您收到java.io.FileNotFoundException
,这意味着文件路径storage/external_SD/mm.txt
错误。
在我的设备上,我有不同的位置,其中一个是你想要的,我想。
/external_sd/
- 没有storage
前缀/storage/sdcard0
- 虚拟SD卡,由Sony提供/storage/sdcard1
- 插入设备的真实物理SD卡您也可以在Android Studio中手动查看文件系统。请点击“工具” - &gt; “Android” - &gt; “Android设备监视器”。在lefy和右侧的“File explorer”选项卡中选择您的设备,您就可以查看设备上的所有文件。