android - 在 Froyo 上 move 文件

标签 android file move sd-card android-2.2-froyo

在我的应用程序中,我以这种方式创建了一个临时文件

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/

相关文章:

android - 如何修复 "Invariant Objects are not valid as a react Child"

androidannotations 4.0.0 不显示布局

android - Android 19 中未显示通知

c++ - 如何获取 SaveDialogBox 组合框值

java - 如何在java中获取目录和子目录中的所有文件的名称

java - 如何在我的 Android 应用程序中合并来自 Google Places 的地点和我自己的地点

rest - 失眠者同时上传图片和发布数据

file - 制作批处理文件,创建一个具有今天日期的文件夹,然后将文件从文件夹 move 到新创建的文件夹中

azure - 根据 Azure 数据工厂中的文件名将文件从一个文件夹复制到多个文件夹

wpf - DragMove() 和最大化