9

アプリケーションの内部ストレージにあるファイルの名前を変更する最良/最も簡単な方法は何ですか? Context.deleteFile()メソッドはあるのに、「移動」機能や「名前変更」機能がないのは少し奇妙です。ファイルの内容を保存し、削除し、新しいファイルを作成してから、内容をそのファイルにコピーする必要がありますか? または、既存のファイルにファイルをコピーする方法はありますか?

更新 (2012 年 8 月 30 日):

以下の提案された解決策に従って、私は仕事をすることができません:

  • shoppinglists.csv というファイルがあります
  • 次に、shoppinglists.tmp という名前の新しいファイルを作成し、shoppinglists.csv の内容といくつかの新しいエントリをコピーします。shoppinglist.tmp ファイルは、shoppinglists.csv ファイルの新しいバージョンです。
  • 次に、古い shoppinglists.csv ファイルを削除します
  • 次に、 shoppinglists.tmp ファイルの名前を shoppinglists.csv に変更する必要があります

私はこれを試しました:

ctx.deleteFile("shoppinglists.csv");           <--- delete the old file
File oldfile = new File("shoppinglists.tmp");
File newfile = new File("shoppinglists.csv");
oldfile.renameTo(newfile);

ただし、これは機能しません。deleteFile() の後は何も起こらず、新しい shoppinglists.tmp ファイルが残ります。

私は何が欠けていますか?

注意: LogCat にはエラーも何もありません。

4

5 に答える 5

0

renameTo()ファイルクラスのメソッドを使用する必要があります。

File testFile = new File ( "test.txt" ); // Assuming it is in Internal Storage
testFile.renameTo ( "newTest.txt" ); 
于 2012-08-29T15:34:48.423 に答える
0

内部ストレージ環境では File.renameTo() メソッドを使用できないと思います。この環境でファイルの名前を変更すると、次のことが可能になります。 - 古いファイルの内容を新しいファイルにコピーします。- 古いファイルを削除します。

于 2014-01-24T02:53:30.833 に答える
0

renameTO() は私の環境では機能しません (Eclipse Indigo、Android バージョン 2.3 の AVD)。解決策は、妥当な時間枠で解決することができないように見えるため、一時ファイル メソッドをすべてスキップすることです。

于 2012-08-31T09:17:27.710 に答える