ant-design-vue/components/vc-upload/src/traverseFileTree.js

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;