所以我正在使用一个图像捕获库,它为我提供了一个临时缓存文件的URI。我想在我的应用程序的文件目录中将该文件保存为“/avatar.jpg”,覆盖任何现有的“avatar.jpg”文件。到目前为止,这是我尝试实现目标的代码:
File file = new File(tempImagePath);
File avatarFile = new File(getFilesDir(), "avatar.jpg");
file.renameTo(avatarFile);
但是,这不会覆盖任何现有的“avatar.jpg”文件。我注意到文件系统API的一些变化,例如FileProvider的引入,所以我不是最快/最有效的方法来完成我需要的东西。
答案 0 :(得分:1)
我相信您可以检查目标文件是否存在,如果它存在则将其删除并将缓存的图像文件移动到所需的目的地。
// Check if file exists, and delete it.
File avatarFile = new File(getFilesDir(), "avatar.jpg");
if (avatarFile.exists())
avatarFile.delete();
并阅读this answer有关如何将文件移动到所需目的地的信息。另外,阅读Java I/O lesson,那里有一些有用的教程。
P.S。:您还可以尝试get the Bitmap
of the image file尝试保存为头像,并将其写入目标文件。请阅读this answer了解更多信息。