Apache Cordova无法从根目录读取文件

时间:2014-08-19 15:42:39

标签: javascript cordova visual-studio-2013 visual-studio-cordova

我正在尝试使用此代码使用cordova读取文件。但我无法在fileSystem.root.getFile函数内看到警报。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
           function (fileSystem) { 
               alert("root name=" + fileSystem.root.name); //alert working
              //after this not working 
               var path = "index.html";
               fileSystem.root.getFile(path, null, function (fileEntry) {
                   alert('file entry');

                   fileEntry.file(gotFile, fail);

               }, fail);
           }, fail);

       function fail(error) {
           alert("File System Error:" + error.code);
       }

我收到错误代码1。我正在使用visual studio cordova hybrid app插件(2013)。

更新已解决:

我通过转到我的垃圾箱解决了问题 - > Windows手机目录。然后我将.xap文件重命名为.zip以提取内容。我发现我的文件与cordova插件一起正确部署。但我的文件在www目录中。所以我把路径分开了,现在就可以了;

var path = "www/index.html"; 

但我真的很想知道为什么cordova文档没有提到这个,但无论如何我现在解决了它;

4 个答案:

答案 0 :(得分:2)

报告错误是因为fileSystem.root.getFile无法在LocalFileSystem.PERSISTENT指向的位置找到index.html。您可以记录fileSystem.root.fullPath以查找fileSystem.root.getFile()在您的设备或系统中查看的路径。

您的应用程序文件(如index.html)不会在LocalFileSystem.PERSISTENT中存储或删除,除非在那里明确复制它。您可以在问题Where does LocalFileSystem.PERSISTENT point to?

中找到有关LocalFileSystem.PERSISTENT所指的位置的更多详细信息。

答案 1 :(得分:2)

我刚刚在这里用工作代码示例发布了一个类似问题的答案: Loading an array stored in a text file in phonegap

我认为Abhishek的回答非常有帮助。

答案 2 :(得分:1)

尝试:

var path = "./index.html";

答案 3 :(得分:0)

您应该连接filesystem.root.name和当前路径,以创建相对于电话文件系统的文件位置的absoulte路径,然后将其传递给fileSystem.root.getFile的path参数。现在你的路径是不完整的。希望它有所帮助!!