Android采用file.delete(),遗留缩略图问题

问题描述

最近在开发中,需要删除合成在系统 DCIM文件下的图片。采用以下的方法


    /**
     * 删除单个文件
     *
     * @param filePath 被删除文件的文件名
     * @return 文件删除成功返回true,否则返回false
     */
    public static void deleteSingleFile(String filePath) {
        File file = new File(filePath);
        if (file.isFile() && file.exists()) {
            file.delete();
        }
    }

发现在系统相册中依然存在与原图等大的黑色空白图。

解决方法

google后,万能的码友给出了方法,原来android系统的图片保存后会在media数据库中记录其缩略图,所以再删除对应的图片时,也要删除数据库中对应的记录,代码如下:

     //filepath-->图片绝对路径
     getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.DATA + "=?", new String[]{filepath});

你可能感兴趣的:(Android采用file.delete(),遗留缩略图问题)