Максимальное количество файлов каталога, которые могут быть прочитаны 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()
предназначен для перечисления всех файлов и папок в каталоге. Чтобы перечислить все записи, вам нужно сделать следующее:
- Вызов
directoryEntry.createReader()
создать новыйDirectoryReader
,- Вызов
readEntries()
,- Продолжайте звонить
readEntries()
пока не будет возвращен пустой массив. Вы должны сделать это, потому что API может не возвращать все записи за один вызов.