【问题标题】:Could not access directory and subdirectory using cordova File API无法使用 cordova File API 访问目录和子目录
【发布时间】:2024-05-20 11:45:02
【问题描述】:

我目前面临文件 API 问题的挑战。我似乎无法访问目录的内容。下面的代码应该访问一个目录及其子目录,然后读取其中的所有文件。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
    function(filesystem) {
        var tmpPath = filesystem.root.toURL() + "Inmark/InmarkCatalog";

        window.resolveLocalFileSystemURL(tmpPath, function(gotDir) {
            var reader = filesystem.root.createReader();
            reader.path = gotDir.toURL();
            reader.readEntries(successCatalog, failCatalogList);

        }, catalogfilefail)
    }, catalogfilefail);

但是发生的事情是它没有进入目录,而是进入内部存储的根目录。它仍在运行reader.readEntries() 函数,但它传递的是根目录中的文件夹,而不是Inmark/InmarkCatalog 中的文件夹。

*我最近升级到 cordova 3.5.1 并使用文件系统插件 1.3.3。

【问题讨论】:

    标签: cordova cordova-plugin-file


    【解决方案1】:

    用这个解决了:

    window.resolveLocalFileSystemURL(tmpPath, function(gotDir) {
    
        var reader = gotDir.createReader(); //<-- this is the answer
    
        reader.readEntries(successCatalog, failCatalogList);
    }, catalogfilefail)
    
    • 我从使用filesystem.root.createReader() 切换到gotDir.createReader()
    • 我的原始代码仅适用于 cordova 2.9.0,当我切换到 3.5.1 时,它停止工作,所以我不得不使用这种新方式。

    【讨论】: