본문 바로가기

백엔드/노드

[NodeJS] fs 모듈 : 파일 시스템에 접근 시 사용

반응형

fs 모듈

파일 생성, 읽기, 쓰기, 삭제, 이동, 이름 바꾸기 등 다양한 파일 시스템 작업을 수행하는데 활용 합니다.


파일 읽기;  fs.readFile() 

fs 모듈을 사용하여 파일을 읽을 수 있습니다. fs.readFile() 메소드를 사용하여 비동기적으로 파일을 읽을 수 있으며, fs.readFileSync() 메소드를 사용하여 동기적으로 파일을 읽을 수 있습니다.

 

- 해당 경로의 파일에 입력되어 있는 데이터를 읽어 옵니다. 

const fs = require('fs');

// 비동기적으로 파일 읽기
fs.readFile('/path/to/file', 'utf8', (err, data) => {
               ㄴ경로          ㄴ 인코딩 방식
  if (err) throw err;
  console.log(data);
});

// 동기적으로 파일 읽기
try {
  const data = fs.readFileSync('/path/to/file', 'utf8');
  console.log(data);
} catch (err) {
  console.error(err);
}

 

위 코드에서는 readFile() 메소드를 사용하여 비동기적으로 파일을 읽습니다. 파일 경로와 파일 인코딩 방식( 'utf8'은 텍스트 파일을 읽을 때 사용하는 인코딩 방식 중 하나입니다)을 전달하며, 콜백 함수는 읽은 데이터를 전달합니다.

 

동기적으로 파일을 읽는 경우 readFileSync() 메소드를 사용합니다. 이 메소드는 예외 처리를 해주어야 합니다.


파일 쓰기 ;. fs.writeFile() , fs.writeFileSync()

fs 모듈을 사용하여 파일을 쓸 수 있습니다. fs.writeFile() 메소드를 사용하여 비동기적으로 파일을 쓸 수 있으며, fs.writeFileSync() 메소드를 사용하여 동기적으로 파일을 쓸 수 있습니다.

 

- 실제 해당 경로의 파일에 입력한 데이터가 저장됩니다. 

- 동기적으로 처리하는 경우에는 반드시 try ~ catch를 사용하여 예외처리를 실시해야 합니다. 

const fs = require('fs');

// 비동기적으로 파일 쓰기
fs.writeFile('/path/to/file', 'Hello, World!', (err) => {
  if (err) throw err;
  console.log('File written!');
});

// 동기적으로 파일 쓰기
try {
  fs.writeFileSync('/path/to/file', 'Hello, World!');
  console.log('File written!');
} catch (err) {
  console.error(err);
}

위 코드에서는 writeFile() 메소드를 사용하여 비동기적으로 파일을 씁니다. 파일 경로, 쓸 내용, 콜백 함수를 전달합니다.

동기적으로 파일을 쓰는 경우 writeFileSync() 메소드를 사용합니다. 이 메소드는 예외 처리를 해주어야 합니다.


파일 삭제 ;  fs.unlink()

 fs.unlink() 메소드를 사용하여 파일을 삭제할 수 있습니다.

const fs = require('fs');

// 해당 경로의 파일을 삭제합니다.
fs.unlink('/path/to/file', (err) => {
  if (err) throw err;
  console.log('File deleted!');
});

파일 이동 ; fs.rename() 

fs 모듈을 사용하여 파일을 이동하거나 이름을 변경할 수 있습니다. fs.rename() 메소드를 사용하여 파일을 이동하거나 이름을 변경할 수 있습니다.

const fs = require('fs');

// 파일 이동
fs.rename('/path/to/oldfile', '/path/to/newfile', (err) => {
  if (err) throw err;
  console.log('File moved!');
});

// 파일 이름 변경
fs.rename('/path/to/oldfile', '/path/to/newfile', (err) => {
  if (err) throw err;
  console.log('File renamed!');
});

 

위 코드에서는 rename() 메소드를 사용하여 파일을 이동하거나 이름을 변경합니다. 이전 파일 경로, 새로운 파일 경로, 콜백 함수를 전달합니다.


폴더 생성/삭제; fs.mkdir() ,  fs.rmdir()

fs.mkdir() 메소드를 사용하여 폴더를 생성할 수 있으며, fs.rmdir() 메소드를 사용하여 폴더를 삭제할 수 있습니다.

const fs = require('fs');

// 폴더 생성
fs.mkdir('/path/to/folder', (err) => {
  if (err) throw err;
  console.log('Folder created!');
});

// 폴더 삭제
fs.rmdir('/path/to/folder', (err) => {
  if (err) throw err;
  console.log('Folder deleted!');
});

파일/폴더 목록 조회 ;  fs.readdir()

fs 모듈을 사용하여 파일과 폴더 목록을 조회할 수 있습니다. fs.readdir() 메소드를 사용하여 폴더 내 파일과 폴더 목록을 조회할 수 있습니다.

const fs = require('fs');

// 파일 및 폴더 목록 조회
fs.readdir('/path/to/folder', (err, files) => {
  if (err) throw err;                 ㄴ목록들 배열정보가 담깁니다.
  console.log(files);
});

위 코드에서는 readdir() 메소드를 사용하여 폴더 내 파일과 폴더 목록을 조회합니다. 폴더 경로, 콜백 함수를 전달합니다. 콜백 함수의 두 번째 인수인 files는 파일 및 폴더 목록을 포함하는 배열입니다.


파일 정보 조회 ; fs.stat

fs 모듈을 사용하여 파일 정보를 조회할 수 있습니다. fs.stat() 메소드를 사용하여 파일 정보를 조회할 수 있습니다.

const fs = require('fs');

// 파일 정보 조회
fs.stat('/path/to/file', (err, stats) => {
  if (err) throw err;
  console.log(stats);
});

위 코드에서는 stat() 메소드를 사용하여 파일 정보를 조회합니다. 파일 경로, 콜백 함수를 전달합니다. 콜백 함수의 두 번째 인수인 stats는 파일 정보를 포함하는 객체입니다. 파일 크기, 생성 시간, 수정 시간, 액세스 시간 등의 정보를 포함합니다.

반응형