Node.js에서는 폴더를 재귀적으로 복사하는 것이 일반적인 작업입니다. 이 문서에서는 Node.js를 사용하여 폴더 내의 모든 하위 파일과 하위 폴더를 포함하여 전체 폴더를 복사하는 방법을 살펴봅니다.
Node.js에서 폴더를 복사하는 방법에는 크게 두 가지가 있습니다. 하나는 내장된 fs 모듈을 사용하는 것이고, 다른 하나는 타사 모듈을 사용하는 것입니다.
폴더 복사에 내장된 fs 모듈을 사용하세요
Node.js의 내장 fs 모듈은 폴더 복사 기능을 구현하는 데 도움이 되는 여러 API를 제공합니다.
먼저 소스 폴더 경로와 대상 폴더 경로라는 두 가지 매개변수를 받는 함수를 만들어야 합니다.
const fs = require('fs'); const path = require('path'); function copyFolderRecursiveSync(source, target) { // ... }
다음으로 대상 폴더를 만들어야 합니다. 대상 폴더가 존재하지 않으면 fs.mkdirSync() 함수를 사용하여 생성할 수 있습니다.
if (!fs.existsSync(target)) { fs.mkdirSync(target); }
다음으로 소스 폴더의 모든 파일과 하위 폴더를 나열해야 합니다. fs.readdirSync() 함수를 사용하여 소스 폴더에 있는 모든 파일과 하위 폴더의 이름을 가져올 수 있습니다.
const files = fs.readdirSync(source);
각 파일이나 하위 폴더에 대해 파일인지 폴더인지 확인해야 합니다. fs.statSync() 함수를 사용하여 파일이나 폴더의 상태를 가져올 수 있습니다.
files.forEach((file) => { const sourcePath = path.join(source, file); const targetPath = path.join(target, file); const stat = fs.statSync(sourcePath); if (stat.isFile()) { // copy file } else if (stat.isDirectory()) { // copy directory }
파일이 파일이면 fs.copyFileSync() 함수를 사용하여 대상 폴더에 복사할 수 있습니다.
if (stat.isFile()) { fs.copyFileSync(sourcePath, targetPath); }
파일이 폴더인 경우 copyFolderRecursiveSync() 함수를 재귀적으로 호출하여 대상 폴더에 새 폴더를 생성해야 합니다.
if (stat.isDirectory()) { copyFolderRecursiveSync(sourcePath, targetPath); }
전체 코드는 다음과 같습니다.
const fs = require('fs'); const path = require('path'); function copyFolderRecursiveSync(source, target) { if (!fs.existsSync(target)) { fs.mkdirSync(target); } const files = fs.readdirSync(source); files.forEach((file) => { const sourcePath = path.join(source, file); const targetPath = path.join(target, file); const stat = fs.statSync(sourcePath); if (stat.isFile()) { fs.copyFileSync(sourcePath, targetPath); } else if (stat.isDirectory()) { copyFolderRecursiveSync(sourcePath, targetPath); } }); } copyFolderRecursiveSync('path/to/sourceFolder', 'path/to/targetFolder');
폴더 복사에 타사 모듈 사용
내장된 fs 모듈을 사용하는 것 외에도 타사 모듈을 사용하여 폴더 복사 기능을 구현할 수도 있습니다. 여기에서는 일반적으로 사용되는 두 가지 모듈인 fs-extra와 ncp를 소개합니다.
fs-extra 모듈
fs-extra는 파일 및 폴더 복사, 이동, 삭제를 포함하여 내장 fs 모듈보다 더 많은 기능을 제공하는 Node.js용 타사 모듈입니다.
fs-extra의 copySync() 기능을 사용하여 하위 폴더와 파일을 포함한 전체 폴더를 복사할 수 있습니다.
const fs = require('fs-extra'); fs.copySync('path/to/sourceFolder', 'path/to/targetFolder');
ncp 모듈
ncp는 폴더를 재귀적으로 복사하는 데에도 사용할 수 있는 Node.js용 타사 모듈입니다. fs-extra와 달리 ncp는 복제 중 오류를 더 쉽게 처리할 수 있습니다.
ncp의 ncp() 함수를 사용하면 폴더 전체를 복사할 수 있습니다.
const ncp = require('ncp').ncp; ncp('path/to/sourceFolder', 'path/to/targetFolder', function (err) { if (err) { console.error(err); } else { console.log('done'); } });
요약
Node.js에서 폴더를 재귀적으로 복사하는 방법에는 여러 가지가 있습니다. 내장된 fs 모듈을 사용하려면 더 많은 코드를 작성해야 하지만 복사 프로세스를 더 많이 제어할 수 있습니다. 폴더 복사는 타사 모듈인 fs-extra 및 ncp를 사용하면 더 쉽게 수행할 수 있지만 이로 인해 복사 프로세스에 대한 제어가 줄어들 수 있습니다.
위 내용은 nodejs에서 폴더를 재귀적으로 복사하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!