在应用程序内部存储中重命名文件的最佳/最简便方法是什么?我发现有一个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中没有错误或任何东西。

    最佳答案

    可以使用File提供的getFileStreamPath方法,而不是使用原始的Context构造函数。也就是说,请执行以下操作:

    File oldfile = ctx.getFileStreamPath("shoppinglists.tmp");
    File newfile = ctx.getFileStreamPath("shoppinglists.csv");
    oldfile.renameTo(newfile);
    

    10-05 17:46
    查看更多