java - Android 4.4.2 不删除文件

标签 java android android-external-storage

我有一段代码可以扫描目录中的所有文件,它应该删除这些文件。但由于某种原因,它没有删除它们。

我拥有的是这样的:

String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Images/"; 
File f = new File(path);
File file[] = f.listFiles();
for (File aFile : file) {
    boolean isDeleted = aFile.delete();
    if(isDeleted) {
        log.d("file", "is deleted");
    }
}

当我调试此代码时,它会提示每个文件 isDeletedtrue。但是当我检查手机上的“图库/图像”文件夹时,我发现所有图像仍然存在......

我的 list 中还具有以下两项权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

任何人都知道为什么文件没有被删除,尽管它说 isDeletedtrue

最佳答案

在 Android 4.4.2 中您无法再删除文件。至少,不是由其他应用程序创建的文件。这是一个新的(而且愚蠢的)限制。

您需要做的是root您的手机,然后安装像SDFix或类似的应用程序。这样您就可以再次获得对 SD 卡的完全访问权限。

这是目前最好的方法。

或者你可以尝试一个“漏洞”,如这篇文章所示:

How to delete a file from SD card?

关于java - Android 4.4.2 不删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330884/

相关文章:

java - 如何使用Java中的聚合框架将时间戳转换为日期

android - 如何在Android中无间隙播放声音循环

android - 部分手机复制数据库失败

android - 如何在android应用程序中以在线和离线模式加载或检索网页?

android - WRITE_EXTERNAL_STORAGE 不适用于 Lollipop ,即使它已在 list 中设置

java - ANDROID:在某个日期禁用 EditTexts 并在另一个日期后重新启用它们?

java - NetBeans Hibernate 逆向工程数据类型不匹配

java - Java套接字客户端未检测到服务器消息

java - ant中使用AndroidManifest.xml版本代码

java - 更新到 Android 4.4 KitKat 后无法找到 Movies 文件夹