JavaScript中FileReader#readEntries可以读取的目录的最大文件数

JavaScript中FileReader#readEntries可以读取的目录的最大文件数,javascript,google-chrome-extension,google-chrome-app,fileapi,Javascript,Google Chrome Extension,Google Chrome App,Fileapi,我正在创建一个Chrome应用程序。我必须读取目录中的文件,并且我正在使用and 我的问题是,使用DirectoryReader#readEntries读取的最大文件数是100,前100个(按字母顺序) 阅读你链接的文档 此接口的唯一方法,readEntries()用于列出所有 目录中的文件和文件夹。要列出所有条目,请 需要执行以下操作: 调用directoryEntry.createReader()创建新的DirectoryReader 调用readEntries() 继续调用readEntr

我正在创建一个Chrome应用程序。我必须读取目录中的文件,并且我正在使用and

我的问题是,使用DirectoryReader#readEntries读取的最大文件数是100,前100个(按字母顺序)


阅读你链接的文档

此接口的唯一方法,
readEntries()
用于列出所有 目录中的文件和文件夹。要列出所有条目,请 需要执行以下操作:

  • 调用
    directoryEntry.createReader()
    创建新的
    DirectoryReader
  • 调用
    readEntries()
  • 继续调用
    readEntries()
    直到 数组返回。
    您必须这样做,因为API可能不会返回 在一次调用中返回所有条目

  • 非常感谢。写了这篇文章后,我正在考虑这个解决方案。显然,这是有效的。这个例子解释了它()。我必须改进对解决方案的搜索…WTF readEntries()只读取部分条目。糟糕的设计,函数应该显式接受每个调用返回的最大条目数的参数(没有默认值)。如果函数是异步的,如何“继续调用函数?”Gianluca Ghettini:如果读取项的结果不是空数组,则创建一个递归函数,再次调用readEntries。所以如果你有325个项目,它会被调用五次,返回100,100,100,25,然后是0个项目。一旦它返回零,你就不会再调用它了。哦,天哪,这太糟糕了,因为它看起来像是在工作,只有当你用很多文件尝试它时,它才是不完整的。我是Gianluca的,应该有一个必要的参数来确认这种行为。你也可以看看解决这个问题的软件包,它还提供了方便的基于承诺的文件API接口。
    var reader = currentDir.createReader();
    var read = reader.readEntries.bind(reader, function(files) {
        for ( var i = 0; i < files.length; i++){
             if (files[i].name == nameSearches){
                    callback(files[i]);
                }
    
            }
        })
        callback(undefined)
    }
    read();
    
    var reader = currentDir.createReader();
    var read = reader.readEntries.bind(reader, function(files) {
        if (files.lenght == 0) {
            callback(undefined);
        }
        for ( var i = 0; i < files.length; i++){
            if (files[i].name == nameSearches){
                    callback(files[i]);
                }
    
            }
        })
        read();
    
    }
    read();