我正在从 Internet 下载文件并将流数据保存到我的应用程序内部存储中由 getFilesDir() 提供的临时文件中.
下载完成后,我需要将临时文件移动到外部存储器(通常是 SD 卡)上的下载目录。但出于某种原因, File.renameTo() 不适用于此。我猜是有问题,因为它是两个独立的文件系统,但我仍然可以直接下载到 SD 卡并且文件 URI 是正确的。
是否有另一种简单快捷的方法将该文件从内部存储器传输到外部存储器,还是我必须进行字节流复制并删除原始文件?
最佳答案
使用以下代码将文件从内存复制到 SD 卡,反之亦然:
public static void copyFile(File src, File dst) throws IOException
{
FileChannel inChannel = new FileInputStream(src).getChannel();
FileChannel outChannel = new FileOutputStream(dst).getChannel();
try
{
inChannel.transferTo(0, inChannel.size(), outChannel);
}
finally
{
if (inChannel != null)
inChannel.close();
if (outChannel != null)
outChannel.close();
}
}
而且 - 它有效...
关于java - 如何在 Android 上将文件从内部应用存储移动/重命名到外部存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770004/