在应用程序内部存储中重命名文件的最佳/最简便方法是什么?我发现有一个Context.deleteFile()
方法,但没有“移动”或“重命名”功能,这有点奇怪。我是否需要一路保存文件的内容,删除它,创建一个新文件,然后将内容复制到那个文件中?还是有办法在现有文件上复制文件?
更新(2012年8月30日):
根据以下建议的解决方案,我无法上类:
我尝试了这个:
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);