const traverseFileTree = (files, callback, isAccepted) => { const _traverseFileTree = (item, path) => { path = path || '' if (item.isFile) { item.file((file) => { if (isAccepted(file)) { callback([file]) } }) } else if (item.isDirectory) { const dirReader = item.createReader() dirReader.readEntries((entries) => { for (const entrieItem of entries) { _traverseFileTree(entrieItem, `${path}${item.name}/`) } }) } } for (const file of files) { _traverseFileTree(file.webkitGetAsEntry()) } } export default traverseFileTree