Я создал программу, которая рекурсивно сканирует мои жесткие диски на наличие файлов.
На моем P C имеется девять дисков, и самый сложный диск - это диск ОС / программ, C:
каталог. Конечно, сканирование занимает гораздо больше времени, чем на любом другом моем диске.
Кто-нибудь знает какие-нибудь хитрости, которые позволили бы мне сканировать этот конкретный диск c более эффективно, но так же тщательно?
Я знаю, что могу кешировать результаты в виде дерева, чтобы ускорить последующее сканирование этого диска, но возможно ли каким-либо образом ускорить начальное сканирование?
async function scan(path, exts, persist) {
try {
const stats = await fsp.stat(path)
if (stats.isDirectory()) {
const
childPaths = await fsp.readdir(path),
promises = childPaths.map(childPath => scan(join(path, childPath), exts)),
results = await Promise.all(promises)
return [].concat(...results)
} else if (stats.isFile()) {
const fileExt = extname(path).replace('.', '')
if (exts.includes(fileExt) && !path.includes('$RECYCLE.BIN')) {
return {
"path": path,
"root": parse(path).root,
"name": basename(path, fileExt).slice(0, -1),
"type": fileExt,
"size": stats.size
}
}
}
return []
}
catch (error) {
console.error(error)
return []
}
}