Я получаю ошибки во многих файлах / папках в домашнем каталоге пользователя, когда пытаюсь перекатить каталог, используя приведенный ниже скрипт.
Все они имеют похожую форму, которую я поместил в объектздесь:
const enoent2 = {
error: 'no such file or directory',
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '../../../Library/Containers/com.apple..NowPlayingWidgetContainer/Data/Documents/iChats'
}
Я посмотрел на Node fs api здесь , но не могу найти квалификаторы, для которых вы можете вызывать fs.stat ().
Мне нужен способ запустить fs.stat () для этих файлов, чтобы мой скрипт работал правильно.
Как я могу остановить эти ошибки?
После дальнейшего анализа обнаруживается ~ 2000 ошибоквсе с формой ниже, за исключением изменений пути, однако все они имеют одинаковый корневой путь:
../../../Library/Containers/com.apple
![enter image description here](https://i.stack.imgur.com/f6kcB.png)
Код:
// Libraries
const fs = require('fs');
const h = require('./helper');
// Start recursing here
const start = '../../../';
// API
getThings(start).then(() => {
faults.paths.forEach((path)=>{
console.log(path);
});
}).catch((err) => {
console.log('Error Bubbled', err);
})
// Accesses the file system and returns an array of files / folders
async function getThings (folder) {
const things = await fs.promises.readdir(folder);
for(let i = 0; i < things.length; i++) {
await getStats(things[i], folder);
}
}
// Gets statistics for each file/folder
async function getStats (thing, folder) {
const path = folder + thing;
let stats;
try {
stats = await fs.promises.stat(path);
} catch(err) {
logError(err);
}
await checkForFolder(stats, thing, path);
}
// if the file/folder is a folder, recurse and do it again
async function checkForFolder(stats, thing, path){
if (stats) {
logThing(stats, thing, path);
if (stats.isDirectory() ) {
await getThings(path + '/');
}
}
}
Я уже предоставил доступ к своей консоли (временно для запуска этого сценария) для полного доступа к диску для целей этого сценария.
Также сценарий выполняетсяиспользуя sudo
как таковой:
узел sudo _getInfo
![enter image description here](https://i.stack.imgur.com/xzoMp.png)