【发布时间】:2018-12-04 01:53:14
【问题描述】:
我似乎无法从本地存储中删除图片。我想要发生的是:删除旧图片,添加同名的新图片。 当我更改图片名称时,将其作为新图片加载没有问题。但是,当我不更改其名称时,它会显示旧图片。 我尝试了 context.deleteFile(filename)。 file.exists 删除后返回 false,但图片仍然存在。 覆盖的解决方案可能会有所帮助。 我在清单中也有外部存储权限。 谢谢!
删除:
void deleteOldPicture(String filename, Context context){
File file = new ImageSaver(context).setFileName(filename).setDirectoryName("images").createFile();
file.delete();
}
创建文件
File createFile() {
File directory;
if(external){
directory = getAlbumStorageDir(directoryName);
}
else {
directory = context.getDir(directoryName, Context.MODE_PRIVATE);
}
return new File(directory, fileName);
}
private File getAlbumStorageDir(String albumName) {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), albumName);
if (!file.mkdirs()) {
Log.e("ImageSaver", "Directory not created");
}
return file;
}
保存文件:
private String saveFileInSD(String name, ImageView image){
String filename = name+parentId+".png";
Log.e("Filename is", filename);
new ImageSaver(getApplicationContext()).setFileName(filename).setDirectoryName("images").save(((BitmapDrawable) image.getDrawable()).getBitmap());
return filename;
}
【问题讨论】:
-
更改保存图片的目录。改用
getExternalCacheDir(),这样拍同名照片时会临时保存并自动删除。 -
@007 还是同样的问题
-
我刚刚发布了一个答案,看看它并尝试将其调整为您的项目结构..希望它有所帮助。 (代码取自我的项目,它工作得非常好——保存一张同名的图片,当有新的图片时它会自动删除-)。
标签: android file bitmap storage overwrite