JavaScript中FileReader#readEntries可以读取的目录的最大文件数
我正在创建一个Chrome应用程序。我必须读取目录中的文件,并且我正在使用and 我的问题是,使用DirectoryReader#readEntries读取的最大文件数是100,前100个(按字母顺序)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
阅读你链接的文档 此接口的唯一方法,
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();