【发布时间】:2011-01-22 19:18:39
【问题描述】:
我正在从 Internet 下载文件并将流数据保存到我的应用程序内部存储中的一个临时文件,该文件由 getFilesDir() 提供。
下载完成后,我需要将临时文件移动到外部存储器(通常是 SD 卡)上的下载目录中。但出于某种原因, File.renameTo() 不适用于此。我猜是有问题,因为它是两个独立的文件系统,但我仍然可以直接下载到 SD 卡并且文件 URI 是正确的。
是否有另一种简单快捷的方法将该文件从内部存储器传输到外部存储器,还是我必须进行字节流复制并删除原始文件?
【问题讨论】:
-
老问题,但要回答为什么 file.renameTo() 不起作用,这是因为该函数要求位置位于同一挂载点上,而 sdcard 和 internal 是不同的位置: “两条路径都在同一个挂载点上。在 Android 上,应用程序在尝试在内部存储和 SD 卡之间进行复制时最有可能遇到此限制。” developer.android.com/reference/java/io/…
-
2020,
File file = new File(getExternalFilesDir(null), fileName + ".mp3");已经给了内部存储