Cordova android 文件系统困难

Cordova android filesystem difficulties

我们正在使用 cordova 开发一个 android 应用程序,文件将被同步。 Cordova 是最新的,但问题是我们的文件保存在主存储目录中。

文件 url 如下所示: file:///storage/emulated/0/{our_directory}//

科尔多瓦更新后我们被迫设置 <preference name="AndroidPersistentFileLocation" value="Compatibility" /> 在 config.xml 中,仍然可以找到我们的文件。

现在我们真的很想将我们的文件放在内部数据目录中。 因此,如果我们当然可以删除 config.xml 中的 "Compatibility" 设置,那么所有文件都将不可见。

如果我们切换到内部数据目录,我们会遇到两个问题:

  1. 在过渡期间,我们需要访问两个目录(兼容性:file:///storage/emulated/0/{our_directory}// 和新的正确内部数据目录:file:///data/user/0/{our_app_id}/files/files/{our_directory}//)。 如果我们更改为 interal window.requestFileSystem(LocalFileSystem.PERSISTENT,0,fn) 提供内部应用程序数据目录的根目录。那么如何读取或写入不在此目录中的文件呢?我发现 cordova.file.externalRootDirectory 提供了旧路径。关于如何访问这两个目录的任何想法?
  2. 另一件事是,我们可能希望将所有文件从旧目录移动到新的正确的内部应用程序数据目录中。关于如何做到这一点有什么想法吗?

提前致谢!

如果您已经知道要从中存储和检索文件的URL,您可以使用:

window.resolveLocalFileSystemURL(URL,回调);

回调将通过目录条目。

要移动文件,您可以使用 fileEntry 方法 moveTo。

entry.moveTo(parentEntry, "newFile.txt", 成功, 失败);

我知道此文档适用于 Cordova 3.3.0,但我相信它仍然相关。

https://cordova.apache.org/docs/en/3.3.0/cordova/file/fileentry/fileentry.html