26 lines
633 B
JavaScript
26 lines
633 B
JavaScript
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
|