将文件从SD卡移动到应用程序内部数据(存储)

时间:2012-11-27 16:38:21

标签: java android file move

背景

我需要获取以下文件并将其移至我的应用内部存储空间。

  

mnt / sdcard / downloads

我可以通过使用以下方法复制文件,然后从SD卡中删除文件来成功实现此目的。

writer = new BufferedWriter(new FileWriter(file));
writer.write(data);
writer.close();

复制大文件时,我需要加倍空间(我没有)。

问题

是否可以“移动”与复制删除相对应的文件(更改目录)

其他信息 调查我发现的问题:

public boolean renameTo (File newPath)

doc

  

两个路径都在同一个挂载点上。在Android上,应用程序是   在尝试复制时最有可能达到此限制   内部存储和SD卡。   quote taken from here

我不知道我是否可以在同一个挂载点上获取两个路径。

2 个答案:

答案 0 :(得分:2)

听起来你正在处理非常大的文件,所以你可能会考虑某种渐进式收缩/增长其他类型的操作 - 尽管可能只有当你能检测到没有足够的空间来存放完整副本时。

答案 1 :(得分:0)

我曾尝试过相反的事情(SD内部,同样的事情)副本然后删除过程是我发现的唯一一个工作。我想你不能只是'重命名'是有意义的,因为文件位于不同的物理存储区域(不确定是否同样适用于某些Android设备上的某些'虚拟'SD卡)。如果它们位于不同的存储空间,则不能只交换文件头上的指针。