본문 바로가기

Programming/Node.js

4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 3

node js logo image

 

 

 

 

앞선 아티클에서 우리는 fs 메서드를 이용해 폴더 유무를 확인하고, 새롭게 생성하는 과정을 살펴보았습니다. 

 

 

 

 

4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 2

앞서 fs의 메서드를 사용한 예제를 살펴보았습니다.     { return " data-og-host="nozeroslope.tistory.com" data-og-source-url="https://nozeroslope.tistory.com/554" data-og-url="https://nozeroslope.tistory.com/554" data-og-image="https:/

nozeroslope.tistory.com

 

이번에는 폴더 내용을 확인한 다음, 삭제하는 과정을 살펴보도록 하겠습니다. 우선 전제조건은 앞선 아티클의 예제를 통해서 현재 js파일 실행 폴더 내에 [/folder/newfile.js]가 존재하는 상황이라는 점입니다. 

 

 

 

const fs = require('fs').promises;

fs.readdir('./folder')
    .then( (dir) => {
        console.log('폴더 내용 체크', dir);
        return fs.unlink('./folder/newfile.js');
    })
    .then( () => {
        console.log('파일 삭제 정상 완료');
        return fs.rmdir('./folder');
    })
    .then( () => {
        console.log('폴더 삭제 정상 완료');
    })
    .catch( (err) => {
        console.error(err);
    })

/* 출력
폴더 내용 체크 [ 'newfile.js' ]
파일 삭제 정상 완료
폴더 삭제 정상 완료
*/

 

 

· fs.readdir(경로, 콜백) : 폴더 안의 내용물을 확인합니다. 배열 안에 내부 파일, 폴더 명을 출력합니다.

 

 

· fs.unlink(경로, 콜백) : 파일을 지울 수 있는데, 만일 실행하는 파일이 존재하지 않는 경우는 에러가 발생합니다. 즉, 위와 같이 반드시 폴더 내용을 사전에 체크하는 과정을 거쳐야 합니다.

 

 

· fs.rmdir(경로, 콜백) : 특폴더를 지울 수 있는데, 만일 폴더 안에 파일이 남아 있을 경우는 에러가 발생합니다. 사전에 파일을 모두 먼저 지워야 합니다.

 

위 예제를 실행한 다음 한번 더 실행할 경우, ENOENT 에러가 발생합니다. 존재하지 않는 파일을 지우기 때문이죠. 

 

/*
[Error: ENOENT: no such file or directory, scandir 'X:\xxxx\folder'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'scandir',
  path: 'X:\\xxxx\\folder'
}
*/