問題描述
最近在開發中,需要刪除合成在系統 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});