phonegap / cordova使用CDVfile读取目录列表

时间:2014-05-30 14:13:42

标签: cordova phonegap-plugins

在cordova 3.5中,我的app的basePath定义为

basePath = 'cdvfile://localhost/persistent/myapp/';

我可以使用fileTransfer插件存储一些下载的图像。在android中最终进入sdcard / myapp /这是好事。 [我有两个必需的文件和文件传输插件]。在iPhone中我不知道位置,但不知何故它们存储正确。

我检查了cordova / phonegap文档以及其他stackoverflow问题,但找不到任何有用的信息。

但是我无法尝试列出同一目录。我试过了:

       function success (entries) {
            var i;
            for (i = 0; i < entries.length; i++) {
                console.log(entries[i].name);
            }
        }

        function fail (error) {
            console.log("Failed to list directory contents: " + JSON.stringify(error));
        }

        var parent = 'cdvfile://localhost/persistent/';
        var parentName = "pogedapp";
        var directoryEntry = new DirectoryEntry(parentName, parent);
        var directoryReader = directoryEntry.createReader();

        directoryReader.readEntries(success, fail);

错误返回是代码5,根据此页面[https://developer.mozilla.org/en-US/docs/Web/API/FileError]应该是&#39;网址格式错误。确保网址完整且有效。&#39;

有没有办法让我的代码工作?我应该能够在本地下载图像,然后在以后删除它们。因此,目录列表和文件传输都应使用相同的文件夹。我设法获得了Root文件夹的列表,但我认为我不能使用那个,因为最终目录与Android / iOS不同。

1 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题,我们通过忽略localhost路径解决了这个问题。你应该这样称呼它。记住图像被读作Base65内容。所以,你必须将它们作为数据URL读取。你应该让它运作。以下是我的代码块,它完美无缺。

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

    function gotFS(fileSystem) {
                fileSystem.root.getFile("yourdirectory/"+numImg[0], null, gotFileEntry, fail);
                            }



    function gotFileEntry(fileEntry) {

            fileEntry.file(gotFile, fail);

        }

function gotFile(file){ 
        readDataUrl(file);
}

    function readDataUrl(file) {

            var reader = new FileReader();
            reader.onloadend = function(evt) {

            imgArray.push(evt.target.result);

            };
            reader.readAsDataURL(file);

        }