我一直在尝试将文件从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文件夹失败的原因。
请帮助,这非常令人沮丧和困惑。
答案 0 :(得分:0)
我并不完全记得我最终是如何解决这个问题的,因为它已经有一段时间了,但我进入了我的代码并找到了这个函数,该函数位于onDeviceReady部分:
window.resolveLocalFileSystemURL(cordova.file.dataDirectory,function(dir){
window.MainApp.FolderObject = dir;
}, window.MainApp.ErrorHandler);
这似乎打开了在应用程序内部使用的永久存储空间,因为window.MainApp.FolderObject始终被引用并完成其工作。希望这可以帮助。