我有一段代码可以扫描目录中的所有文件,它应该删除这些文件。但由于某种原因,它没有删除它们。
我拥有的是这样的:
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");
}
}
当我调试此代码时,它会提示每个文件 isDeleted
为 true
。但是当我检查手机上的“图库/图像”文件夹时,我发现所有图像仍然存在......
我的 list 中还具有以下两项权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
任何人都知道为什么文件没有被删除,尽管它说 isDeleted
是 true
?
最佳答案
在 Android 4.4.2 中您无法再删除文件。至少,不是由其他应用程序创建的文件。这是一个新的(而且愚蠢的)限制。
您需要做的是root您的手机,然后安装像SDFix或类似的应用程序。这样您就可以再次获得对 SD 卡的完全访问权限。
这是目前最好的方法。
或者你可以尝试一个“漏洞”,如这篇文章所示:
关于java - Android 4.4.2 不删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330884/