背景
我需要获取以下文件并将其移至我的应用内部存储空间。
mnt / sdcard / downloads
我可以通过使用以下方法复制文件,然后从SD卡中删除文件来成功实现此目的。
writer = new BufferedWriter(new FileWriter(file));
writer.write(data);
writer.close();
复制大文件时,我需要加倍空间(我没有)。
问题
是否可以“移动”与复制删除相对应的文件(更改目录)
其他信息 调查我发现的问题:
public boolean renameTo (File newPath)
两个路径都在同一个挂载点上。在Android上,应用程序是 在尝试复制时最有可能达到此限制 内部存储和SD卡。 quote taken from here
我不知道我是否可以在同一个挂载点上获取两个路径。
答案 0 :(得分:2)
听起来你正在处理非常大的文件,所以你可能会考虑某种渐进式收缩/增长其他类型的操作 - 尽管可能只有当你能检测到没有足够的空间来存放完整副本时。
答案 1 :(得分:0)
我曾尝试过相反的事情(SD内部,同样的事情)副本然后删除过程是我发现的唯一一个工作。我想你不能只是'重命名'是有意义的,因为文件位于不同的物理存储区域(不确定是否同样适用于某些Android设备上的某些'虚拟'SD卡)。如果它们位于不同的存储空间,则不能只交换文件头上的指针。