在Android中,可以将文件移动到应用程序的私有目录中吗?

In Android, can a file be moved to inside the app's private directory?

我在下载目录中有一个文件。我们称它为文件 class.

OldFile

我似乎可以使用 OldFile.renameTo(File(some new file path)) 将其移动到任何我喜欢的地方,除非新文件路径位于从 context.filesDir.

获得的应用程序私有文件目录中

这个 Kotlin 代码段有效,例如:

val newFileLocation = File(Environment.getExternalStorageDirectory().absolutePath + "/test.txt")
oldFile.renameTo(newFileLocation)

但是这段代码无声地失败了,没有抛出异常,oldFile 完全没有改变:

val newFileLocation = File(context?.filesDir?.absolutePath + "/test.txt")
oldFile.renameTo(newFileLocation)

是否有一些规则禁止使用 File.renameTo 将文件移动到 filesDir 路径?

我该怎么办?

谢谢

约翰

renameTo() 仅适用于同一 'partition' 上的文件。

显然 getFilesDir() 在不同的分区上。