0

例如,我的内部存储文件夹中有 4 个位图:right0、right1、right2、right3

以及一个 ArrayList,其中包含位图的 4 个 uri:uri0、uri1、uri2、uri3

现在我想删除 uri1/right1。这并不难,但我也希望将 uri2/right2 重命名为 uri1/right1,并将 uri3/right3 重命名为 uri2/right2。所以我希望总是有 0123 的命令......

我试过了:

rightFolder= getDir("rightFolder", Context.MODE_PRIVATE);


for(int i = counter + 1; i <= uriList.size(); i++){//counter is 1 if i want to remove right1
    File tempFile = new File (rightFolder, ""+i);
    File newFile = new File (rightFolder, ""+(i-1));
    tempFile.renameTo(newFile); 
}

有了这个,我试图重命名文件。之后我删除了列表中的最后一个 uri:

uriList.remove(uriList.size()-1);

但这没有用。调试后我发现 renameTo() 方法不起作用。tempFile 与以前的名称相同。我的想法是现在我将 right2 复制到文件夹中,而不是使用名称 right1 然后删除 right2。但我不知道如何在内部存储中复制文件。

我怎样才能解决这个问题。或者有没有人有其他想法来解决这个问题?

4

1 回答 1

0

尝试删除文件,然后重命名所有其他文件。也许您无法重命名,因为您有一个名称已经存在的文件。

于 2014-10-24T08:39:26.430 回答