たとえば、内部ストレージのフォルダーに 4 つのビットマップがあります: right0、right1、right2、right3
ビットマップの 4 つの uris を持つ ArrayList: 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を削除するというものでした。しかし、内部ストレージにファイルをコピーする方法がわかりません。
どうすればこれを修正できますか。または、誰かがこの問題を解決する別のアイデアを持っていますか?