Cordova android文件系统困难

时间:2017-04-11 08:17:55

标签: android file cordova filesystems

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

文件网址如下: file:///storage/emulated/0/{our_directory}//

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

现在我们真的希望将我们的文件放在内部数据目录中。 因此,如果我们只是删除config.xml中的“兼容性”设置,那么所有文件都将是不可见的。

如果我们更改为内部数据目录,我们遇到两个问题:

  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. 另一件事是,我们可能希望将旧目录中的所有文件移动到新的正确的内部应用程序数据目录中。关于如何做到这一点的任何想法?
  3. 提前致谢!

1 个答案:

答案 0 :(得分:1)

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

window.resolveLocalFileSystemURL(URL,callback);

回调将传递给目录条目。

要移动文件,您可以使用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