在我的应用程序中,我以这种方式创建了一个临时文件
File tmp = File.createTempFile("TEST_", null, getFilesDir());
这在 toURI()zed 对应于类似内容的文件中解析
/data/data/it.lorenzoff.test/files/TEST_XXX.tmp
在某些情况下,我想将此文件永久 move 到 SD 卡上,但此代码
dest = new File("/sdcard/permanentFile");
tmp.renameTo(dest);
从不工作。
我已经在使用这些权限
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
但 renameTo 继续返回 false。 我做错了什么?
提前致谢
L.
最佳答案
解释可以在 File
的文档中找到:
许多失败都是可能的。一些更可能的失败包括:
- 包含源路径和目标路径的目录需要写入权限。
- 两条路径的所有父级都需要搜索权限。
- 两条路径 [必须] 在同一个安装点上。在 Android 上,应用程序在尝试在内部存储和 SD 卡之间复制时最有可能遇到此限制。
在这种情况下,源文件路径和目标文件路径指向不同的挂载点(这两个挂载点甚至具有不同的文件系统)。您唯一的选择是手动将文件复制到 SD 卡,然后从内部存储中删除该文件。
关于android - 在 Froyo 上 move 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623694/