5

我正在尝试以编程方式将文件从 Android 的内部存储器移动到 SD 卡中的现有目录。
我尝试了两种方法。在第一个中,我使用了 File.renameTo:

String destName = externalDirPath + File.separatorChar + destFileName;
File originFile = new File(cacheDirPath + File.separatorChar + originalfileName);

originFile.renameTo(new File(destName));

在另一个我使用了 Runtime.getRuntime():

Process p = Runtime.getRuntime().exec("/system/bin/sh -");
DataOutputStream os = new DataOutputStream(p.getOutputStream());

String command = "cp " + cacheDirPath + "/" + originalfileName+ " " + externalDirPath + "/" + destFileName+ "\n";

os.writeBytes(command);

对他们两个都不起作用..有

什么建议吗?

4

1 回答 1

7

根据 Android API 参考renameTo

两条路径都在同一个挂载点上。在 Android 上,应用程序在尝试在内部存储和 SD 卡之间进行复制时最有可能遇到此限制。

您可能必须将其读File入 abyte[]然后将其写入新的File. 这个答案涵盖了它。

于 2012-05-19T13:44:51.520 回答