nodejs에서 폴더를 재귀적으로 복사하는 방법
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

게으른로드는 필요할 때까지 컨텐츠로드를 지연시켜 초기로드 시간과 서버로드를 줄임으로써 웹 성능 및 사용자 경험을 향상시킵니다.

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.
