【问题标题】:Cordova File Plugin - Read from www folder?Cordova File Plugin - 从 www 文件夹读取?
【发布时间】:2014-10-09 15:30:45
【问题描述】:

我在 Android 上遇到问题(未在其他平台上测试),我想使用 cordova 文件 API 从 /www 文件夹中读取文件。互联网上有关于这是否可能的相互矛盾的信息。我遵循了一个类似的例子:

window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/index.html", gotFile, fail);

但是我收到错误 1(找不到文件)。我可以使用 AJAX 来检索我需要的文件,但它不适合我的用例。我想查询 /www 文件夹中的目录并读取动态命名的文件。有什么想法吗?

我想要一个更新的答案,因为我看到的答案已经超过 1 岁了: Can you read files in the www folder using PhoneGap.'s JS methods?

提前致谢。

【问题讨论】:

    标签: javascript android cordova cordova-plugins


    【解决方案1】:

    您可以使用此功能获取 www/ 文件夹中的所有可用文件

    function listDir(path){
      window.resolveLocalFileSystemURL(path,
        function (fileSystem) {
          var reader = fileSystem.createReader();
          reader.readEntries(
            function (entries) {
              console.log(entries);
            },
            function (err) {
              console.log(err);
            }
          );
        }, function (err) {
          console.log(err);
        }
      );
    }
    //example: list of www/ folder in cordova/ionic app.
    listDir(cordova.file.applicationDirectory + "www/");
    

    (www 文件夹处于只读模式。您不能在其中写入任何内容。Cordova plugin file 文档对此进行了说明。但您可以使用copyTo() method of html5 API File 将数据复制到另一个位置)

    【讨论】:

      【解决方案2】:

      根据今年早些时候的 Raymond Camden,cordova=file-plugin 无法做到这一点:http://www.raymondcamden.com/2015/01/21/phonegapcordova-tip-working-with-files-under-www-and-android -

      首先,您不能使用文件系统 API 来处理 www 文件夹下的文件。 File 插件的文档错误地指出您对应用程序目录(其中将包含 www)具有读取权限,但这是不正确的。

      但是您确实可以使用文件插件访问几个目录。下面是一些用于检索其中一些内容的示例代码:https://*.com/a/29905718/346550

      【讨论】: