【问题标题】:cordova file plugin not working as expected科尔多瓦文件插件没有按预期工作
【发布时间】:2014-07-19 10:49:55
【问题描述】:

我一直在尝试将文件从 tmp 目录复制/移动到我在 iOS 上的应用程序的 Documents 或 Library 目录中。

两者都失败了,给我一个错误。 (错误代码 6 NO_MODIFICATION_ALLOWED_ERR)。

https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md

根据此处的文档,理论上我应该能够将路径转换为目录对象,然后能够在那里移动/复制文件。文档和库具有 r/w 访问权限。该文档没有说明首先请求文件系统等等。所以我对如何才能真正将文件复制到持久存储中感到有些困惑。

window.resolveLocalFileSystemURL(fileURL, function(file){
    console.log('Moving File');
    file.moveTo(window.MainApp.FolderObject, newName, window.MainApp.SuccessHandler, window.MainApp.ErrorHandler);
}, window.MainApp.ErrorHandler);

FolderObject 是这样创建的:

window.resolveLocalFileSystemURL(window.MainApp.FileFolder,function(dir){
        window.MainApp.FolderObject = dir;
    }, window.MainApp.ErrorHandler);

并且 MainApp.FileFolder 指向:file:////Library/

此外,文档中提到的目录在通过控制台进行测试时也无法解析。这就是将文件复制到本应可访问的 Documents 文件夹失败的原因。

请帮忙,这非常令人沮丧和困惑。

【问题讨论】:

  • 嗨,我知道这个问题是两年前提出的,但我面临着和你一样的问题。经过这么多谷歌搜索我没有找到答案。你能告诉我是怎么做到的你提前解决了这个问题。
  • 我发布了我自己的问题的答案,并为您提供了一些提示。如果您遇到更多问题,我可以深入挖掘。

标签: cordova cordova-plugins


【解决方案1】:

我不完全记得我是如何最终解决问题的,因为已经有一段时间了,但是我进入了我的代码,发现这个函数位于 onDeviceReady 部分中:

window.resolveLocalFileSystemURL(cordova.file.dataDirectory,function(dir){
        window.MainApp.FolderObject = dir;
    }, window.MainApp.ErrorHandler);

这似乎打开了应用程序内部使用的永久存储空间,因为 window.MainApp.FolderObject 在整个过程中都被引用并完成了它的工作。希望这可以帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-25
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多