fs 모듈 : 파일이나 디렉터리(폴더)에 접근해서 파일/디렉터리 관련 작업을 수행하는 모듈
ch03 - <list.js> : ch03 디렉터리(폴더)에 있는 파일을 표시
※readdir(경로[, 옵션], 콜백) : 지정한 경로의 디렉터리를 읽고, 디렉터리 내부에 파일 이름을 모두 표시
※옵션
-encoding : 반환값 형태 지정, 기본값은 'uft8(텍스트 형식)'
-withFileTypes : 디렉터리 항목으로 표시 유무 지정, 기본값은 false
const fs = require("fs"); //fs 모듈을 가져옴
fs.readdir("./", (err, files) => { //경로, 콜백 지정
if (err) {
console.error(err); //에러를 표시
} else {
console.log(files); //디렉터리에 파일을 읽어옴
}
});
>> node list
※디렉터리 항목 : 파일 이름과 파일 유형이 쌍을 이루어진 것
<파일 관리하기>
ch03 - <read.js> : ch03 디렉터리에 example.txt 파일을 읽어옴
※readFile(파일[, 옵션], 콜백) : 파일의 내용을 읽어 버퍼, 문자열로 반환
※옵션
-encoding : 반환값 형태 지정, 기본값은 null(바이너리 형태)이며 보통 'uft8(텍스트 형식)'으로 지정
-flag : 파일을 어떤 형태로 읽을 지 지정, 기본값은 r(읽기)이며 w(쓰기) / a(추가) / r+(읽기&쓰기) 등 여러 값 사용
-signal : 중간에 파일 읽기 취소 지정
const fs = require("fs");
fs.readFile("./example.txt", "utf8", (err, data) => { //파일 경로, 반환값 형태, 콜백
if (err) {
console.error(err);
} else {
console.log(data); //example.txt 파일을 읽어옴
}
});
>> node read
ch03 - <write.js> : example.txt에 내용을 text.txt에 작성
※existSync(파일) : 파일 존재 여부를 확인
※writeFile(파일, 내용[, 옵션], 콜백) : 파일에 내용을 기록
-파일이 없을 경우 파일 새로 생성, 파일이 있을 경우 기존 파일에 내용을 전부 지우고 새로 작성
※옵션
-mode : 파일에 사용자의 권한을 설정, 기본값은 0o666(읽고, 쓰기 권한)
-encoding('uft8'), flag('w'), signal
const fs = require("fs");
fs.readFile("./example.txt", "utf8", (err, data) => { //example.txt 파일을 읽어옴
if (err) {
console.error(err);
} else if (fs.existsSync("./text.txt")) { //text.txt 파일이 있는 지 확인
console.log("text.txt is already");
} else {
fs.writeFile("./text.txt", data, (err) => { //example.txt 파일 내용을 text.txt에 작성
if (err) {
console.error(err);
} else {
console.log("text.txt is write");
}
});
}
});
>> node write
ch03 - <append.js> : text.txt 파일에 새로운 내용 추가
※appendFile(파일, 내용[, 옵션], 콜백) : 기존 파일에 내용을 새로 추가
※옵션 : encoding('uft8'), flag('w'), mode
const fs = require("fs");
const appendText = `
새로운 내용 추가
`;
fs.appendFile("./text.txt", appendText, (err) => { //파일 이름, 추가할 내용, 콜백 지정
if (err) {
console.error(err);
} else {
console.log("text.txt is append");
}
});
>> node append
ch03 - <unlink.js> : text.txt 파일을 삭제
※unlink(파일, 콜백) : 파일을 삭제
const fs = require("fs");
if (!fs.existsSync) { //파일이 없을 경우
console.log("text.txt is already done");
} else { //파일이 있을 경우
fs.unlink("text.txt", () => { //파일을 삭제
console.log("text.txt is unlink");
});
}
>> node unlink
<디렉터리 관리>
ch03 - <dirMake.js> : test, test2, test3 디렉터리를 한꺼번에 생성
※mkdir(경로[, 옵션], 콜백) : 디렉터리를 생성
※옵션
-recursive : 여러 개의 디렉터리를 지정했을 시 중간에 존재하지 않는 경로까지 포함, 기본값은 false
-mode : 디렉터리의 권한을 지정, 기본값을 지정 0o777(읽기, 쓰기, 실행)
const fs = require("fs");
if (fs.existsSync("./test/test2/test3")) { //디렉터리가 있을 경우
console.log("Directory is already");
} else { //디렉터리가 없을 경우
fs.mkdir("./test/test2/test3", { recursive: true }, (err) => { //디렉터리 생성
if (err) {
console.error(err);
} else {
console.log("Directory is make");
}
});
}
>> node dirMake
ch03 - <dirRemove.js> : test, test2, test3 디렉터리를 한꺼번에 삭제
※rm(경로[, 옵션], 콜백) : 디렉터리 삭제
※옵션
-force : 파일/디렉터리를 강제로 삭제할 지 지정, 기본값은 false
-maxRetries : 오류오 디렉터리를 삭제하지 못했을 시 재시도 횟수 지정, 기본값은 0
-retryDelay : 재시도 횟수를 지정할 경우 대기 시간(밀리초)을 지정, 기본값은 100
-recursive : 여러 개의 디렉터리를 지정했을 시 중간에 존재하지 않는 경로까지 포함, 기본값은 false
const fs = require("fs");
if (fs.existsSync("./test")) { //디렉터리가 있을 경우
fs.rm("./test", { recursive: true }, (err) => { //디렉터리 삭제
if (err) {
console.error(err);
} else {
console.log("Directory is remove");
}
});
} else { //디렉터리가 없을 경우
console.log("Directory is already remove");
}
>> node dirRemove
※rmdir(경로[, 옵션], 콜백) : 빈 디렉터리만 삭제
※옵션
-maxRetries : 오류오 디렉터리를 삭제하지 못했을 시 재시도 횟수 지정, 기본값은 0
-retryDelay : 재시도 횟수를 지정할 경우 대기 시간(밀리초)을 지정, 기본값은 100
'Do it Node.js > EJS BackEnd' 카테고리의 다른 글
7. HTTP 모듈 (0) | 2024.02.29 |
---|---|
6. 버퍼, 스트림, 파이프 (0) | 2024.02.28 |
4. path 모듈 (0) | 2024.02.25 |
3. 모듈 시스템 (0) | 2024.02.24 |
2. 자바스크립트 비동기 처리 (0) | 2024.02.23 |