Estoy tratando de hacer una función de carga de arrastrar y soltar JS con manejo de directorio.
Mi problema es acceder a los datos de los archivos en sí, como un archivo. Quiero los archivos en una matriz outFiles :
var outFiles = new Array(); Supongamos que los archivos filelist están en la lista de archivos. Entonces hago esto:
for (var i = 0, len = filelist.length ; i < len ; i++) { var item = filelist[i].webkitGetAsEntry(); if (item) { scanFiles(item); } } Donde scanFiles trata los archivos de las carpetas de manera diferente:
function scanFiles(item) { // item is dir if (item.isDirectory) { let directoryReader = item.createReader(); directoryReader.readEntries(function(entries) { entries.forEach(function(entry) { scanFiles(entry); }); }); } // item is file else if (item.isFile) { item.file(function(f){ outFiles.push(f.name); }); } } Mi problema es que outFiles a veces está vacío y otras veces no.
Este es mi código real en esa etapa:
console.log(outFiles); console.log(outFiles.length);Y esto es lo que devuelve mi navegador:
Array [] 0: "445ea31f.jpg" 1: "473cf800.webp" 2: "576fb63b.jpg" 3: "855a5d7c.png" 4: "873e4247.png" 5: "885dde4b.JPG" length: 6 <prototype>: Array [] 0 La matriz está llena (con el f.name para este ejemplo, pero tendré que poner la f completa) pero no puedo acceder a ella.
¿Por qué?
Y si no es así, ¿cómo obtengo una matriz de todos los elementos?
Gracias,