以编程方式将文件从缓存目录移动到SDCard

dan*_*ony 3 storage android caching move

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

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

originFile.renameTo(new File(destName));
Run Code Online (Sandbox Code Playgroud)

在另一个我使用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);
Run Code Online (Sandbox Code Playgroud)

这两个都不起作用..有

什么建议吗?

fra*_*llo 5

根据Android API参考renameTo,

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

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