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

时间:2014-05-23 07:36:54

标签: javascript google-chrome-extension google-chrome-app fileapi

我正在创建Chrome应用程序。我必须阅读目录的文件,并使用DirectoryEntry APIDirectoryReader API

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

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();

files.length的值为100,目录中有更多文件

我不确定此限制是关于谷歌浏览器,谷歌浏览器应用程序,Javascript ......以及是否可以克服此限制

标记结果代码的解决方案是:

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();

1 个答案:

答案 0 :(得分:13)

阅读您链接的文档!

  

此界面的唯一方法readEntries()用于列出所有内容   目录中的文件和文件夹。要列出所有条目,您   需要做以下事情:

     
      
  1. 致电directoryEntry.createReader()以创建新的DirectoryReader
  2.   
  3. 致电readEntries()
  4.   
  5. 继续致电readEntries(),直至空白   返回数组。您必须执行此操作,因为API可能不会   在一次通话中返回所有条目。
  6.