Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android 5中从外部存储中删除文件_Android_Delete File_Android Permissions_Android External Storage - Fatal编程技术网

如何在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卡
  • 您还可以在Android Studio中手动查看文件系统。请点击“工具”->“安卓”->“安卓设备监视器”。在左边选择您的设备,在右边选择“文件资源管理器”选项卡,您将能够查看设备上的所有文件

    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卡。你不能换这张卡。它现在是只读的。