【发布时间】:2012-11-27 16:38:20
【问题描述】:
背景
我需要获取以下文件并将其移动到我的应用程序内部存储中。
mnt/sdcard/下载
我可以通过使用以下方法复制文件,然后从 SD 卡中删除文件来成功实现此目的。
writer = new BufferedWriter(new FileWriter(file));
writer.write(data);
writer.close();
复制大文件时,我需要双倍空间(我没有)。
问题
是否可以“移动”文件(更改目录)而不是复制删除
其他信息 调查我发现的问题:
public boolean renameTo (File newPath)
两条路径都在同一个挂载点上。在 Android 上,应用程序是 尝试在之间进行复制时最有可能遇到此限制 内部存储器和 SD 卡。 quote taken from here
我不知道我是否可以在同一个挂载点上获得两条路径。
【问题讨论】:
-
这很难看。就公开的 API 而言(即使在涉及应用程序用户 ID 的 unix 级别),外部存储和内部存储是分开的。但是,您对暂时需要双倍空间的担忧表明您拥有更新的设备之一,其中外部存储卷实际上是在内部存储之上模拟的。不幸的是,您可能无法在不复制文件的情况下利用它重新分配这些磁盘块。
-
谢谢克里斯,这非常有用,因为我怀疑会是这种情况。