2025/3/13(목)

 

파일 관리_Path 모듈

  • 운영체제 간에 경로를 구분하는 구분자가 다른 불편 존재 => 경로 구분자를 통일하기 위해 사용
  • 경로를 나누거나 합치기 가능
  • 절대경로( `파일절대경로: ${__filename}` ), 상대 경로 존재
  • 경로 존재 여부로, 이름이 같은 내가 만든 모듈과 내장 모듈 구분 가능

 

 

주요 함수

Path 모듈 가져오기

const path = require('path');

 

 

경로 합치기

path.join(경로1,경로2,...);

 

 

경로만 추출하기 

path.dirname(경로);

 

 

파일 이름만 추출하기

path.basename(경로);

 

 

파일 이름만 추출하기(확장자 제외)

path.basename(경로, 확장자);

 

 

확장자 추출하기

path.extname(경로);

 

 

경로를 객체로 변환하기

=> 각각의 정보를 한번에 가져올 수 있음

path.parse(경로)

{
  root, // 루트 디렉터리
  dir,  // 디렉터리 경로
  base, // 파일명.확장명
  ext,  // 확장명
  name  // 파일명
}

 


FS 모듈

  • File System 모듈의 약자
  • 비동기 처리 방법에 따라 사용하는 함수가 다름
    • 동기 처리 함수
    • 콜백 처리 함수
    • Promise API
  • FS 모듈 가져오기 : const fs = require('fs');

 

1. 동기 처리

 

에러 체크는 try catch로 실행

파일 존재 여부 체크 : fs.existsSync(파일)

 

2. 비동기 처리

 

 

 

요약

                                  동기 처리                                비동기 처리
디렉터리 읽기 fs.readdirSync('./'); fs.readdir('./', (err, files) =>
파일 읽기 fs.readFileSync('./example.txt'); fs.readFile('./example.txt', 'utf-8', (err, data) =>
파일에 쓰기 fs.writeFileSync('./text-1.txt', data); fs.writeFile('./text-2.txt', data, (err) =>
기존 파일에  내용 추가하기 fs.writeFileSync('./text-1.txt', content, { flag: 'a' });
fs.appendFileSync(파일, 내용);
fs.appendFile('./text-2.txt', '\n\n 새로운 내용 추가', (err) =>
파일 삭제하기 fs.unlinkSync('./text-1.txt'); fs.unlink('./text-2.txt', (err) =>
디렉터리 만들기 fs.mkdirSync(경로 [, 옵션]) fs.mkdir('./test', (err) =>

fs.mkdir('./test2/test3/test4', { recursive: true }, (err) =>
디렉터리 삭제하기 fs.rmdirSync(경로 [, 옵션]) fs.rmdir('./test', (err) =>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts