【问题标题】:Apache Cordova Can't Read a File from Root DirectoryApache Cordova 无法从根目录读取文件
【发布时间】:2014-08-19 15:42:39
【问题描述】:

我正在尝试使用带有此代码的 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 混合应用插件 (2013)。

更新已解决:

我通过进入我的 bin -> windows phone 目录解决了这个问题。然后我将 .xap 文件重命名为 .zip 以提取内容。我在那里发现我的文件与cordova插件一起正确部署。但我的文件在www 目录中。所以我指定了路径,它现在可以工作了;

var path = "www/index.html"; 

但我真的很想知道为什么科尔多瓦文档没有提到这一点,但无论如何我现在解决了;

【问题讨论】:

  • 您好,您可以添加出现此错误代码的平台吗?
  • @NicolasR 在 Windows 手机中
  • Windows Phone 8? 8.1?
  • windows phone 8 因为默认情况下,Visual Studio 的 Cordova 插件会启动 wp 8 模拟器,但我部署到 wp8.1 仍然是同样的错误
  • 也许您可以尝试列出存储中的目录,以确保您确实在您认为的位置,就像这个问题的 OP 所做的那样:stackoverflow.com/questions/24600166/… 这听起来很基本,但所有WP中的isolatedStorage部分,也许你应该检查

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


【解决方案1】:

我刚刚发布了一个类似问题的答案,其中包含工作代码示例: Loading an array stored in a text file in phonegap

顺便说一句,我认为 Abhishek 的回答很有帮助。

【讨论】:

  • 很抱歉……您的回答对这里有什么帮助?
  • @NicolasR 原始发帖人的代码不起作用,看起来文件 api 使用有问题。我给出了一个工作(测试)示例代码,它以稍微不同的方式做同样的事情,所以我想它会有所帮助。作为替代方案,我指出 Abhishek 的回答也很好,当我顺便发布我的回复时,OP 在它下面有不同的评论(说它不起作用)..
  • @mentat,您的链接很有帮助,因为现在当我将路径指向var path = "www/index.html"; 时它可以工作。所以,我会把它作为你的功劳。
【解决方案2】:

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

您的应用程序文件(如 index.html)不会存储或删除到 LocalFileSystem.PERSISTENT,除非它被明确复制到那里。您可以在 SO 问题 Where does LocalFileSystem.PERSISTENT point to? 中找到有关 LocalFileSystem.PERSISTENT 指向位置的更多详细信息

【讨论】:

  • 完整路径返回/,我的index.html也在我的根目录中
  • 我提取了 .xap 文件,我的文件在 www 文件夹中
【解决方案3】:

试试:

var path = "./index.html";

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-06
      • 2016-08-30
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多