Максимальное количество файлов каталога, которые могут быть прочитаны FileReader#readEntries в JavaScript

Я создаю приложение Chrome. Я должен прочитать файлы каталога, и я использую API DirectoryEntry и API DirectoryReader.

Моя проблема в том, что максимальное количество файлов, читаемых с использованием 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 и есть больше файлов в каталоге

Я не уверен, относится ли это ограничение к Google Chrome, приложениям Google Chrome, 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 ответ

Решение

Прочитайте документы, которые вы связали!

Единственный метод для этого интерфейса, readEntries() предназначен для перечисления всех файлов и папок в каталоге. Чтобы перечислить все записи, вам нужно сделать следующее:

  1. Вызов directoryEntry.createReader() создать новый DirectoryReader,
  2. Вызов readEntries(),
  3. Продолжайте звонить readEntries() пока не будет возвращен пустой массив. Вы должны сделать это, потому что API может не возвращать все записи за один вызов.
Другие вопросы по тегам