如何在android 5中从外部存储中删除文件
我曾经如何在android 5中从外部存储中删除文件,android,delete-file,android-permissions,android-external-storage,Android,Delete File,Android Permissions,Android External Storage,我曾经 File f=new File(MyPath); f.delete(); 我使用了权限WRITE\u EXTERNAL\u STORAGE和READ\u EXTERNAL\u STORAGE,但在Android 5中不起作用 Logcat消息: java.io.FileNotFoundException: storage/external_SD/mm.txt: open failed: EACCES (Permission denied) 清单文件: <?xml versi
File f=new File(MyPath);
f.delete();
我使用了权限WRITE\u EXTERNAL\u STORAGE
和READ\u EXTERNAL\u 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版起,我们无法从MICRO SD卡中删除和写入文件。它现在是只读的 试试这个:
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();
private ArrayList\u filepath=new ArrayList();
最后一个字符串imgPath=\u filepath.get(\u position);
最终蛇杆蛇杆=蛇杆
.make(查看“删除图像?”,Snackbar.LENGTH\u LONG)
.setAction(“删除”,新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
File File=新文件(imgPath);
delete();
Snackbar Snackbar 1=Snackbar.make(查看“图像已删除!”,Snackbar.LENGTH\u SHORT);
notifyDataSetChanged();
View sbView=snackbar1.getView();
TextView TextView=(TextView)sbView.findviewbyd(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.findviewbyd(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.YELLOW);
snackbar.show();
如果不起作用,则表示发布日志猫和您正在使用的代码请仔细检查您的文件路径,路径如下所示:
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Audio/audio_20160622_081844.3gp";
File file = new File(filePath);
if (file.exists()) {
file.delete();
}
您收到的是
java.io.FileNotFoundException
,这意味着文件路径storage/external\u SD/mm.txt
错误
在我的设备上,我有不同的位置,我想其中一个就是你想要的
/external\u sd/
-不带存储
前缀/storage/sdcard0
-索尼提供的虚拟SD卡/storage/sdcard1
-插入设备的真实物理SD卡storage/external_SD/mm.txt
这不是有效的路径。你应该使用
/storage/external_SD/mm.txt
这不是一开始的外部存储。它是可移动存储
应用程序上的Android 4.4无法再写入micro SD卡
谷歌做出了这样的决定
我们必须接受它。但是这很难。你能发布你的logcat日志吗?@ArtemMostyaev logcat不要为我发送任何日志。请仔细查看你的应用程序的所有logcat消息。可能会出现带有其他错误信息的橙色警告。@ArtemMostyaev Post Edited。Android 5可能会切换卡片命名规则,因此路径可能不同/My path Ok。logcat在android 5中发送“权限被拒绝”消息。你是什么意思?我告诉过你,从4.4版开始,你不能从micro SD卡上删除文件。那么什么问题没有解决呢?我的意思是/storage/。。。这还没有解决。如果应用程序中的文件为“私人模式”,则无法删除它们?要删除文件,怎么办?你不能再从MICRO SD卡上删除文件了。没关系!但我不能将文件写入SD卡,这是我的问题。您也不能将文件写入sd卡。你不能换这张卡。它现在是只读的。