본문 바로가기

컴퓨터/NodeJS

NodeJS FileSystem (fs)

[모듈]

 

const fs = require("fs");

[디렉토리]

▣ 존재 확인

const bool = fs.existsSync("디렉토리경로");

 생성

fs.mkdirSync("생성 디렉토리 경로");

[파일]

▣ 존재 확인

fs.exists("test.txt", function (exists) {
  console.log(exists ? "it's there" : "no exists!");
});

▣ 생성

var fs = require('fs');

var file = 'test1.txt';
fs.open(file,'w',function(err,fd){
	if (err) throw err;
 	console.log('file open complete');
});

fs.open() 해당 파일을 엽니다. 옵션 'w' 의 경우 해당 파일이 없다면 생성합니다. 

해당 옵션에 따라 파일의 접근이 달라집니다. 

  파일을 읽기로 열며 해당 파일이 없다면 에러발생
 r+   읽기/쓰기 상태로 파일을 열며 파일이 없다면 에러 발생 
 w   쓰기로 파일을 열며 존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀.
 w+   읽기/쓰기로 열며  존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀.
 a  추가 쓰기로 열며 파일이 존재하지 않으면 만듬. 
 a+  추가 읽기/쓰기로 열며 파일이 존재 하지 않으면 만듬. 

▣ 이름 변경 (이동)

var fs = require('fs');

fs.rename('test1.txt', 'text2.txt', function (err) {
  if (err) throw err;
  console.log('renamed complete');
});

fs.rename() 해당파일의 이름을 변경합니다. 예제는 test1.txt -> test2.txt  로 변경합니다. 

해당 파일이 없거나 권한이 없다면 에러가 발생합니다. 또한 변경하려는 이름의 같은 이름의 파일이 존재하면 에러가 발생합니다.

▣ 삭제

var fs = require('fs');
fs.unlink('text2.txt', (err) => {
  if (err) throw err;
  console.log('successfully deleted text2.txt');
});

fs.unlink() 파일을 삭제 합니다. 예제의 경우 test2.txt 파일을 삭제 합니다. 

해당 파이 없거나 권한이 없다면 에러가 발생합니다. 

▣ 읽기

var fs = require('fs');

fs.readFile('test1.txt', 'utf8', function(err, data) {
  console.log(data);
});

let data = fs.readFileSync("test2.txt", "utf8");

fs.readFile() 해당 파일을 읽습니다. 예제의 경우 test1.txt 파일을 읽고 콘솔로 출력합니다.

▣ 쓰기

□ 새로 쓰기

var fs = require('fs');

var data = 'file system example!!';
fs.writeFile('text1.txt', data, 'utf8', function(error){
	console.log('write end')
});

fs.writeFile() 해당파일에 내용을 씁니다. 예제의 경우 test1.txt파일에 data의 내용을 씁니다. 

만일 파일이 존재 하지 않으면 파일을 생성후 내용을 씁니다. 파일의 내용을 이어서 쓰진 않습니다.

 이어서 쓰기

var fs = require('fs');

fs.appendFile('test1.txt', 'data to append', function (err) {
  if (err) throw err;
  console.log('The "data to append" was appended to file!');
});

fs.appendFile() 해당 파일에 내용을 이어서 씁니다. 예제의 경우 test1.txt 에 'data to append' 를 이어서 씁니다. 파일이 없을경우 새로 생성하여 씁니다. 

 목록 불러오기

fs.readdir("./public/test/", (err, files) => {
  if(err) console.log(err);
  console.log(files);
});

 복사

fs.createReadStream('test.log').pipe(fs.createWriteStream('newLog.log'));

 크기

const STATS = fs.statSync("test.txt");
const FILESIZEINBYTES = STATS.size;
const FILESIZEINMEGABYTES = FILESIZEINBYTES / (1024*1024);

 

'컴퓨터 > NodeJS' 카테고리의 다른 글

NodeJS 설치  (0) 2021.10.26
NodeJS 에서 fetch() API 사용하기  (0) 2021.05.14
NodeJS npm json2csv 사용법  (0) 2021.02.17
NodeJS cookie-parser  (0) 2019.07.12
NodeJS nodemailer  (0) 2019.06.19