内容解析程序无法删除图像文件

时间:2014-02-13 10:12:23

标签: android persistence delete-file android-contentresolver

我尝试使用内容解析器的删除方法删除图像文件。它显示它已被删除但我在检查图像文件夹时没有看到任何差异。

    int id =  getLastImageId();
    int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,    
    MediaStore.Images.Media._ID + "=?", new String[]{ Long.toString(id) } );
    Log.i("", "total deleted rows:" + deleted);

在logcat中,我可以看到已删除的总行数为1.您可以放心,getLastImageId方法是正确的。此外,我甚至试图删除MediaStore表中的所有内容,但无济于事。例如:

    int id =  getLastImageId();
    int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,    
    null, null);
    Log.i("", "total deleted rows:" + deleted);

对于此示例,删除的总行数为834,这是我手机中的所有内容,但图像仍然存在。仅供参考,我正在检查的图像是sdcard / DCIM / Camera

希望得到你的帮助。

此致 德克斯特

1 个答案:

答案 0 :(得分:0)

我认为您的代码只是从表MediaStore.Images.Media表中删除数据而不是物理图像。

您可以查询MediaStore.Images.Media.DATA字段,该字段为您提供图像的绝对路径。

然后删除文件,就像删除普通文件一样。