我这里有一个小问题。
在我的应用程序中,我让用户从图库中选择一张图片。在做任何其他事情之前我保存了它的路径。 当用户选择他想要的图片时,我希望将其复制到其他文件夹中,然后从原始文件夹中删除。
嗯,kiiinda的作品。原始图片被删除,副本出现在另一个文件夹中。
Buuut。它还在那里。 仍然可以在图库中看到已删除的图片,并且无法看到该副本。当我调用Gdx.files.absolute(originalPath).exists()
时,它返回false,而Gdx.files.external(copyPath).exists()
则返回true ,我可以毫无问题地使用图片的副本。
看起来画廊没有更新。
我用它来删除和复制图片:
public void MoveToCustomFolder() {
if (DoesOriginalPathExist()) {
if (!DoesCopyExist()) {
System.out.println("Copying");
Gdx.files.external("/CustomFolder/" + fileName).write(Gdx.files.absolute(filePath).read(), true);
}
System.out.println("Deleting");
Gdx.files.absolute(filePath).delete();
}
}
filePath
是图库中原始图片的绝对路径,fileName
是文件的名称(" picture.jpg")
我在研究过程中发现了一些东西。清除媒体存储应用程序的数据后,在一小段时间后显示正确的图库,没有删除的图片以及它们所属的副本。
另外,我确实拥有WRITE_EXTERNAL_STORAGE权限。
你们知道什么是错的吗?
答案 0 :(得分:2)
找到了解决方案。
我必须使用此功能更新图库:
public void UpdateGallery(String filePath) {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(filePath))));
}