0

たとえば、内部ストレージのフォルダーに 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を削除するというものでした。しかし、内部ストレージにファイルをコピーする方法がわかりません。

どうすればこれを修正できますか。または、誰かがこの問題を解決する別のアイデアを持っていますか?

4

1 に答える 1