У меня есть эта функция, в которой каталог имеет те же файлы, что и другой, поэтому один каталог является источником, а другой - тем, который должен выглядеть так, чтобы он удалял файлы, найденные в второй, который не существует в src. В любом случае вещь находится в функции ниже, если я заменил fs.rmdirSync
на fs.rmdir
, но она не работает, но если это не так, она возвращает ошибку, показанную ниже.Удалить файл Синхронно не удается найти файл
function (srcDir, similarDir){
srcDir = path.resolve(process.cwd(),srcDir);
similarDir = path.resolve(process.cwd(),similarDir);
var info = {deletedFiles : 0, deletedDir : 0};
dive(similarDir,function(err, file){
if(err){
console.log(err.toString())
}
else
{
var baseFile = path.basename(file,'.css');
var srcFileDir = path.dirname(file).replace(similarDir,srcDir)
var srcFilePath = path.resolve(srcFileDir , baseFile);
if(!fs.existsSync(srcFilePath)){
console.log("before");
try {
fs.rmdirSync(file)
}
catch(error){
console.log(error)
}
console.log("after");
info.deletedFiles++;
}
}
})
Это ошибка, которая возникает, когда я использую fs.rmdirsync
хотя файл не существует, и если я изменил его на fs.rmdir
он работает (на ОС Windows)
{ [Error: ENOENT, no such file or directory 'D:\angularjs\build\css\components\test\test\test.css']
errno: 34,
code: 'ENOENT',
path: 'D:\\angularjs\\build\\css\\components\\test\\test\\test.css',
syscall: 'rmdir' }
Я только столкнулся с той же проблемой, смогли ли вы когда-нибудь решить эту проблему? –