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