重命名内部存储中的文件

8 android file-rename android-context

在应用程序的内部存储中重命名文件的最佳/最简单方法是什么?我发现有一种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);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.在deleteFile()之后,没有更多的事情发生了,我留下了新的shoppinglists.tmp文件.

我错过了什么?

注意:LogCat中没有错误或任何内容.

Jul*_*mes 5

而不是使用原始File构造函数,使用由getFileStreamPath提供的方法Context.也就是说,做:

File oldfile = ctx.getFileStreamPath("shoppinglists.tmp");
File newfile = ctx.getFileStreamPath("shoppinglists.csv");
oldfile.renameTo(newfile);
Run Code Online (Sandbox Code Playgroud)


小智 0

renameTO() 在我的环境中不起作用(Eclipse Indigo、Android 版本 2.3 的 AVD)。解决方案是完全跳过临时文件方法,因为它似乎不可能在任何合理的时间范围内解决。