Задать вопрос
@dom12

Как скопировать содержимое, кроме папки tmp и в неё же перенести скопированное?

Здравствуйте.
Для копирование использую функцию: fs.cpSync, но возник вопрос:
Как скопировать содержимое, кроме папки tmp и в неё же перенести скопированное?
Пробовал через filte, но все равно выводить ошибку из-за рекурсии.

fs.cpSync('../','../tmp',{ filter:(src)=>(new RegExp("..\layout","iu").test(src))?false:true,recursive:true});
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@dom12 Автор вопроса
async copy(from,to,ignore=[]){
	const recursive = async (from,to,ignore) => {
		this.fs.readdirSync(from,{withFileTypes:true}).filter((file)=>{
			if(ignore && ignore.length){
				if(ignore.filter((name)=>(new RegExp(name,"iu").test(file.name))?true:false).length>0) return false;
			}
			return true;
		}).map((file)=>{
			const fromPath  = `${from.slice(0,from.length-(from.slice(-1)==='/'))}/${file.name}`;
			const toPath    = `${to.slice(0,to.length-(to.slice(-1)==='/'))}/${file.name}`;
			if (file.isDirectory()) {
				this.fs.mkdirSync(toPath,{recursive:true});
				recursive(fromPath,toPath,[]);
			}else{
				this.fs.cpSync(fromPath,toPath);
			}
		})
	};
	await recursive(from,to,ignore);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы