2 yixinyouni1314 yixinyouni1314 于 2014.02.10 16:55 提问

Android File.delete() 删除照片,无法彻底删除

有照片的完整路径,各种权限都加上了。使用
if (!TextUtils.isEmpty(path)) {
File file = new File(path);
if (file.exists())
file.delete();
}
删除后,手机浏览这张照片没了,但是照片原来的位置变成了一张黑色图片。
求帮忙,如何彻底删除照片

5个回答

mengxd200621
mengxd200621   2015.11.16 14:07

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

Uri uri = Uri.fromFile(file);

intent.setData(uri);

context.sendBroadcast(intent);
用这个广播管用。

chengman199463
chengman199463 我加了这个缩略图还是在,在相册里面可以找的
接近 2 年之前 回复
Tom_Blog
Tom_Blog   2016.04.15 16:07

String path = "/storage/emulated/0/DCIM/mdm.jpg"; //获取到的图片完整路径(例子)
if(!TextUtils.isEmpty(path)){
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
ContentResolver mContentResolver = MainActivity.this.getContentResolver();
String where = MediaStore.Images.Media.DATA + "='" + path + "'";
//删除图片
mContentResolver.delete(mImageUri, where, null);

//发送广播
intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File file = new File(path);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
MainActivityTwo.this.sendBroadcast(intent);

}
}

如果使用file.delet() 是会留下一个底图,如果使用ContentResolver删除则不会,看来还是操作数据库删除的彻底

franzhong
franzhong   2014.02.11 15:08

这儿有个广播,我一时没想起来,可以删掉相册内的缩略图(不会出现破损的图形提示了)

tanranran
tanranran   2014.02.17 18:09

你那个完整路径是原图片的路径。。。。而android本省有一个机制(超恶心的),就是会自动生成一张原图片所对应的缩略图。。。。

zt100604
zt100604   2015.12.03 19:24
                if (!TextUtils.isEmpty(path)) {
                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                    File file = new File(path);
                    Uri uri = Uri.fromFile(file);
                    intent.setData(uri);
                    MainActivity.this.sendBroadcast(intent);
                    file.delete();                                          
                    }
chengman199463
chengman199463 还是有啊
接近 2 年之前 回复
chengman199463
chengman199463 我用了这个也还是有
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片